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

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.