AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu onklick prozeduren

Ein Thema von Fastdeath · begonnen am 12. Jun 2009 · letzter Beitrag vom 12. Jun 2009
Antwort Antwort
Seite 1 von 2  1 2      
Fastdeath

Registriert seit: 12. Jun 2009
12 Beiträge
 
#1

Frage zu onklick prozeduren

  Alt 12. Jun 2009, 13:49
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Frage zu onklick prozeduren

  Alt 12. Jun 2009, 13:51
Der Sender ist das angeklickte Label
Markus Kinzler
  Mit Zitat antworten Zitat
Fastdeath

Registriert seit: 12. Jun 2009
12 Beiträge
 
#3

Re: Frage zu onklick prozeduren

  Alt 12. Jun 2009, 14:01
Zitat:
mein erster klick auf ein label setzt den sender der onclick prozedure auf das angeklickte label
soweit war ich auch jetzt will ich aber mit einen 2. Klick den sender verändern. Wie geht das? <---- darauf antworten
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Frage zu onklick prozeduren

  Alt 12. Jun 2009, 14:04
Zitat von Fastdeath:
soweit war ich auch jetzt will ich aber mit einen 2. Klick den sender verändern. Wie geht das? <---- darauf antworten
Den Sender kannst DU nicht verändern. Beschreibe doch mal genau was passieren soll, dann kann man sicher eine Lösung finden.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
12. Jun 2009, 14:05
Dieses Thema wurde von "Sharky" von "Multimedia" nach "VCL / WinForms / Controls" verschoben.
Passt hier besser rein.
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Frage zu onklick prozeduren

  Alt 12. Jun 2009, 14:05
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 [/Edit]
42
  Mit Zitat antworten Zitat
Fastdeath

Registriert seit: 12. Jun 2009
12 Beiträge
 
#7

Re: Frage zu onklick prozeduren

  Alt 12. Jun 2009, 14:17
Also eine onclick Prozedure die mit einen 2. Klick arbeitet geht nicht ????

So nun ein wenig genauer: der erste klick erfasst das label mit den spielstein den man bewegen will (es geht um Dame) Spiellabel:=TLabel(Sender);... der zweite Klick soll das label sein wo sich der spiel stein hin bewegen soll if (setzlabel1=TLabel(Sender)) and ... das 2. Tlabel(sender) soll ein ander klick sein als der erste Tlabel(sender) wie geht das????
  Mit Zitat antworten Zitat
Fastdeath

Registriert seit: 12. Jun 2009
12 Beiträge
 
#8

Re: Frage zu onklick prozeduren

  Alt 12. Jun 2009, 14:20
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 -.-
Angehängte Dateien
Dateityp: zip checkers_106.zip (13,0 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
fui-tak

Registriert seit: 24. Okt 2008
117 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Frage zu onklick prozeduren

  Alt 12. Jun 2009, 15:01
Wie wär's wenn du den Aktuellen Schritt einfach in einer Variablen speicherst
Delphi-Quellcode:
var schritt: integer;
...
//erster Klick:
schritt := 1;

//zweiter Klick:
schritt := 2;
Als nächstes:

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;
  Mit Zitat antworten Zitat
Fastdeath

Registriert seit: 12. Jun 2009
12 Beiträge
 
#10

Re: Frage zu onklick prozeduren

  Alt 12. Jun 2009, 15:48
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
Angehängte Dateien
Dateityp: zip checkers_-_kopie_401.zip (224,1 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz