![]() |
Komponente zur Laufzeit erzeugen - Funktion zuweisen?
hi leutz!
Ich versuche das Kartenspiel "Pazaak" von Star Wars nachzubauen. (falls es jemand kennt) Jetzt erzeuge ich X TImage für die Hand des Spielers. Klappt alles wunderbar, allerdingsmöchte ich gerne, dass beim onClick eines Images eine Prozedur/Funktion durchgeführt werden soll. Geht ja gut, alerdings sollte dabei ein Parameter benutzt werden. Zuerst: So erstelle ich die TImages:
Delphi-Quellcode:
Das kommentierte onClick-Ereignis ist mein Problem. Ich hätte gerne dass eben die Prozedur "KarteBenutzen" durchgeführt wird, allerdings mit dem Parameter, welcher den Kartenwert darstellt.
procedure KartenLegen;
var i: Integer; Bild: TImage; BildText: String; begin // Spielerhand legen for i := 0 to 5 do begin if SpielerHand[i].wert < 0 then begin BildText := 'minus' + inttostr(SpielerHand[i].wert) + '.bmp'; end else begin BildText := 'plus' + inttostr(SpielerHand[i].wert) + '.bmp'; end; if SpielerHand[i].unbenutzt = false then begin BildText := 'Leer.bmp'; end; Bild:=TImage.Create(Form1); with Bild do begin Parent:=Form1.Groupbox3; Left:=8 + i*49; Top:=16; Transparent := true; Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'\data\skin\'+skin+'\'+BildText); // OnClick:=KarteBenutzen(i); end; end; end; Also bei einer Karte mit dem Wert 4 sollte KarteBenutzen(4); ausgeführt werden. Klappt aber nicht :/ |
Re: Komponente zur Laufzeit erzeugen - Funktion zuweisen?
Hi,
wie wäre es mit:
Delphi-Quellcode:
Dann kannst du im Event über das Tag des Senders den Wert bestimmen.
with Bild do begin
Parent:=Form1.Groupbox3; Left:=8 + i*49; Top:=16; Transparent := true; Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'\data\skin\'+skin+'\'+BildText); OnClick:=KarteBenutzen; Tag := i; end; Cu, Frank |
Re: Komponente zur Laufzeit erzeugen - Funktion zuweisen?
Verdammt, warum müssen die blödsten Probleme immer die einfachsten Lösungen haben?
Ich kanns zwar grade nicht ausprobieren, aber ich bin mir ziemlich sicher, dass es so hinhaut ;) Vielen Dank! Ich beuge mich jetzt meiner Dummheit und renn mal kurz gegen die Wand ^^ Nochmals vielen Dank, jetz kann ich endlich weitermachen :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz