![]() |
Frage zu onklick prozeduren
Hallo erstmal,
also ich programmiere ein Dame-Spiele mit Delphi in ramen enes Projektes. Die Spielfelder sind Labels wo wenn man drauf clickt der Zug ausgeführt werden soll. Nun bin ich auf folgendes Problem gestoßen: mein erster klick auf ein label setzt den sender der onclick prozedure auf das angeklickte label , nun soll ein zweiter klick den sender verändern! Wie setze ich den sender in einer prozedure wieder auf '0'? Geht das überhaupt? danke mfg Fastdeath |
Re: Frage zu onklick prozeduren
Der Sender ist das angeklickte Label
|
Re: Frage zu onklick prozeduren
Zitat:
|
Re: Frage zu onklick prozeduren
Zitat:
|
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Multimedia" nach "VCL / WinForms / Controls" verschoben.
Passt hier besser rein. |
Re: Frage zu onklick prozeduren
Der Sender enthält immer die Instanz des Objektes das das Ereignis auslöst. Rufst du die Ereignisprocedure per Quellcode auf, so kannst du einen eigenen Sender übergeben.
Gruß oki [Edit]Ach ja, und herzlich willkommen in der DP :dp: [/Edit] |
Re: Frage zu onklick prozeduren
Also eine onclick Prozedure die mit einen 2. Klick arbeitet geht nicht ???? :wall:
So nun ein wenig genauer: der erste klick erfasst das label mit den spielstein den man bewegen will (es geht um Dame)
Delphi-Quellcode:
der zweite Klick soll das label sein wo sich der spiel stein hin bewegen soll
Spiellabel:=TLabel(Sender);...
Delphi-Quellcode:
das 2. Tlabel(sender) soll ein ander klick sein als der erste Tlabel(sender) wie geht das????
if (setzlabel1=TLabel(Sender)) and ...
|
Re: Frage zu onklick prozeduren
Liste der Anhänge anzeigen (Anzahl: 1)
und hier noch eine alte version meinen halbfertigen Dame-Spieles wo 2 Klicks in einer prozedure gut funktionieren
aber in meiner neuen umstrukturierten gehts nicht -.- |
Re: Frage zu onklick prozeduren
Wie wär's wenn du den Aktuellen Schritt einfach in einer Variablen speicherst
Delphi-Quellcode:
Als nächstes:
var schritt: integer;
... //erster Klick: schritt := 1; //zweiter Klick: schritt := 2; Um herauszufinden welches Label angeklickt wurde, würde ich in die Eigenschaft Tag die Nummer des Labels speichern. Also Label1.Tag := 1; dann geht's so weiter:
Delphi-Quellcode:
procedure TForm.labelGeklickt(Sender: TObject);
begin if TLabel(Sender) is TLabel then begin if schritt = 1 then case TLabel(Sender).Tag of 1:Label1.caption := ''; //Damestein entfernen 2:Label2.caption := ''; ... end; if schritt = 2 then case TLabel(Sender).Tag of 1:Label1.caption := 'X'; //Damestein setzen 2:Label2.caption := 'X'; ... end; if schritt = 1 then schritt := 2 else schritt := 1; end; end; |
Re: Frage zu onklick prozeduren
Liste der Anhänge anzeigen (Anzahl: 1)
:-D So problem gelöst
ich hatte ein logischen fehler drin . Ich musste einfach meine laufvariabel j (j gibt die phase des zuges an) nach hinten verschieben ans ende der prozedure. fui-talk hat mich drauf gebracht (irgentwie ist es mir in den kopf geschpßen beim lesen seinen beitrags) danke für alle bemühungen ich hänge mal für interresiete das halb fertige programm an |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 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