Delphi

Stian Søiland, IT 111, øvingsgruppe 15 (stud.ass. Kari Alvheim)

Delphi - Øving 4 - Oppgave 1

Oppgave 1, bilde 1 Oppgave 1, bilde 2

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Karakter0: TBevel;
    Karakter1: TBevel;
    Karakter2: TBevel;
    Karakter3: TBevel;
    Karakter4: TBevel;
    Karakter5: TBevel;
    Karakter6: TBevel;
    Bevel8: TBevel;
    Bevel9: TBevel;
    Bevel10: TBevel;
    Bevel11: TBevel;
    Bevel12: TBevel;
    Bevel13: TBevel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const maxheight=168;
      maxelever=20;

var
  Form1: TForm1;

implementation

{$R *.DFM}





procedure TForm1.Button2Click(Sender: TObject);
begin
 Karakter0.Height := 1;
 Karakter1.Height := 1;
 Karakter2.Height := 1;
 Karakter3.Height := 1;
 Karakter4.Height := 1;
 Karakter5.Height := 1;
 Karakter6.Height := 1;
 Karakter0.Top := maxheight;
 Karakter1.Top := maxheight;
 Karakter2.Top := maxheight;
 Karakter3.Top := maxheight;
 Karakter4.Top := maxheight;
 Karakter5.Top := maxheight;
 Karakter6.Top := maxheight;
end;

procedure TForm1.Button1Click(Sender: TObject);

type matrise = array[0..6] of integer;

 procedure LesInn(var karakterer:matrise);
  var overskrift,ledetekst,innlest:string;
      karakter                    :integer;
      ferdig                      :boolean;
  begin
   // initering
   overskrift := 'Karakterinnlesing';
   ledetekst := 'Skriv elevens karakter, tomt felt avslutter';
   for karakter := 0 to 6 do karakterer[karakter]:= 0;

   // innlesingssløyfe
   repeat
    innlest := InputBox(overskrift,ledetekst,'');
    ferdig := innlest = '';
    if not ferdig then
     begin
      karakter := StrToInt(innlest);
      // Dersom karakteren er innenfor gyldig område, registreres den
      if (karakter >= 0) and (karakter <= 6) then
       karakterer[karakter] := karakterer[karakter]+1;
     end;
   until ferdig;
  end;

 procedure RegnutHeight(elever    :integer;
                    var height,top:integer);
   begin
    if not (elever>maxelever) then
     begin
      height := (8*elever)+1;
      top := maxheight-height;
     end
    // Dersom det er flere enn 20 elever som har karakteren, settes høyden
    // tilsvarende 21 elever
    else
     begin
      height := 168;
      top := 0;
     end;
   end;

  procedure SkrivUt(karakterer:matrise);
   var elever,height,top:integer;
   begin

    // Setter høyden på hver boks
    elever := Karakterer[0];
    RegnutHeight(elever,height,top);
    Karakter0.Top := top;
    Karakter0.Height := height;

    elever := Karakterer[1];
    RegnutHeight(elever,height,top);
    Karakter1.Top := top;
    Karakter1.Height := height;

    elever := Karakterer[2];
    RegnutHeight(elever,height,top);
    Karakter2.Top := top;
    Karakter2.Height := height;

    elever := Karakterer[3];
    RegnutHeight(elever,height,top);
    Karakter3.Top := top;
    Karakter3.Height := height;

    elever := Karakterer[4];
    RegnutHeight(elever,height,top);
    Karakter4.Top := top;
    Karakter4.Height := height;

    elever := Karakterer[5];
    RegnutHeight(elever,height,top);
    Karakter5.Top := top;
    Karakter5.Height := height;

    elever := Karakterer[6];
    RegnutHeight(elever,height,top);
    Karakter6.Top := top;
    Karakter6.Height := height;
   end;

var karakterer:matrise;

begin
 LesInn(karakterer);
 SkrivUt(karakterer);
end;

end.
  

 


© Stian Søiland 1998

Valid HTML 4.0!