so ...
.. ein Set und eine Klasse:
Delphi-Quellcode:
TSeite = set of (Kopf,Zahl);
TMuenze = class(TObject)
private
kopfSeite : TBitmap;
zahlSeite : TBitmap;
oben : TSeite;
public
constructor Create; virtual;
destructor Destroy; override;
procedure werfen;
procedure zeigen(ausgabeImage: TImage); overload;
function zeigen:AnsiString; overload;
end;
die Methoden:
Delphi-Quellcode:
constructor TMuenze.Create;
begin
inherited create;
randomize;
kopfSeite := TBitmap.Create;
kopfSeite.LoadFromFile(ExtractFilePath(ParamStr(0))+'MKopf.bmp');
zahlSeite := TBitmap.Create;
zahlSeite.LoadFromFile(ExtractFilePath(ParamStr(0))+'MZahl.bmp');
end;
destructor TMuenze.Destroy;
begin
kopfSeite.Free;
zahlSeite.Free;
end;
procedure TMuenze.werfen;
var
kopfWurf : Boolean;
begin
kopfWurf := random(2)+1 = 1;
if kopfWurf then
oben := [Kopf]
else
oben := [Zahl];
end;
procedure TMUenze.zeigen(ausgabeImage: TImage);
begin
ausgabeImage.Stretch := true;
ausgabeImage.Proportional := true;
if oben = [Kopf] then
ausgabeImage.Picture.bitmap.Assign(kopfSeite)
else
ausgabeImage.Picture.bitmap.Assign(zahlSeite);
end;
function TMuenze.zeigen:AnsiString;
begin
if oben = [Kopf] then
result := 'Kopf'
else
result := 'Zahl';
end;
wie man es nutzt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
muenze.werfen;
muenze.zeigen(Image1);
label1.Caption:=muenze.zeigen;
end;
Wie man aus dem Quelltext erkennen kann, sollten die bmp Dateien im
gleichen Ordner wie die Applikation liegen.
Nicht zu vergessen sind:
Eine Instanz der Klasse zu erzeugen und auch wieder
freizugeben.
Grüße
Klaus