Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#55

Re: Kopf oder Zahl

  Alt 13. Sep 2009, 15:01
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
Angehängte Dateien
Dateityp: zip _sieuro_114.zip (47,4 KB, 6x aufgerufen)
Klaus
  Mit Zitat antworten Zitat