Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   auf childclick reagieren (https://www.delphipraxis.net/160689-auf-childclick-reagieren.html)

khh 26. Mai 2011 09:41

auf childclick reagieren
 
hallo zusammen, ich habe ein Panel, darauf angeordnet eine grössere Anzahl Buttons.
(das panel ist parent der buttons)

Lässt sich vom Pannel aus auf den Buttonklick reagieren?
Ich möchte in Abhängigkiet, ob einer der Buttons gedrückt wurden einen boolschen Wert setzen.
Steh wohl grad auf der Leitung :-(

Danke Gruss KHH

stahli 26. Mai 2011 09:55

AW: auf childclick reagieren
 
Ich verstehe nicht genau, was Du machen willst.
Du kannst evtl. allen Buttons die gleiche OnClick-Behandlung zuweisen und dort den Sender auswerten.
Wenn Du irgendwelche Ereignisbehandlungen für das Panel abarbeitest, würde ja letztlich auch eine Formularmethode erzeugt werden, da gäbe es also keinen wirklichen Unterschied.
Anders wäre es (nur), wenn Du ein eigenes Panel mit eigenen Methoden ableiten und nutzen würdest.

Ansonsten schreib nochmal genauer, was Du brauchst...

khh 26. Mai 2011 10:01

AW: auf childclick reagieren
 
die verschiedenen Buttons haben alle ihre eigene, unterschiedliche onClick-Behandlung.
Zusätzlich möchte ich in Abhängigkeit ob einer der Buttons gedrückt wurde einen boolschen wert setzen.
Die Idee war einfach das über das parent-Panel zu machen, damit ich nicht jede einzelne onclick der verschiedenen Buttons anfassen muss.

Coffeecoder 26. Mai 2011 10:05

AW: auf childclick reagieren
 
Sprich: Du hast ein Panel mit z.b 4 unterschiedliche Buttons. Du klickst auf das Panel dann wird eine Variable auf z.b. true gesetzt. Dann machst du das am besten so:

Delphi-Quellcode:
var
   variable : boolean;
...

   variable := false;


procedure TForm1.pnlClick(Sender: TObject);
begin
     variable := not variable ;
end;
Meinst du sowas?

stahli 26. Mai 2011 10:11

AW: auf childclick reagieren
 
Ich würde einfach in jeder Button-Klick-Behandlung den Wert setzen.

Du kannst auch eine FomularMethode definieren und diese bei jedem Klick aufrufen:

Delphi-Quellcode:
procedure Form1.BoolValue(MyBtn: TObject);
begin
  MyValue := (MyBtn = Btn1) or (MyBtn = Btn2);
end;

khh 26. Mai 2011 10:30

AW: auf childclick reagieren
 
Zitat:

Zitat von Coffeecoder (Beitrag 1103012)
Sprich: Du hast ein Panel mit z.b 4 unterschiedliche Buttons. Du klickst auf das Panel dann wird eine Variable auf z.b. true gesetzt. Dann machst du das am besten so:

Delphi-Quellcode:
var
   variable : boolean;
...

   variable := false;


procedure TForm1.pnlClick(Sender: TObject);
begin
     variable := not variable ;
end;
Meinst du sowas?

ja so was.

das funktioniert aber nur wenn ich direkt auf das Panel, also zwischen die Buttons, klicke.
wenn ich auf einen der darauf angeordneten Buttons klicke passiert nix :-(

die variable soll aber gesetzt werden wenn AUF einen Button geklickt wird, nicht wenn daneben geklickt wird.

Jumpy 26. Mai 2011 11:04

AW: auf childclick reagieren
 
Ich mach das ja noch nicht so lange, aber gibt es überhaupt für ein Panel oder sonstein Control ein Event, das feuert, wenn ein Child-Event feuert? Kann ich mir nicht vorstellen.

Warum dann nicht die OnClicks der Buttons kurz anpacken und da die eine Zeile mehr einfügen?


Alternativ alles so umstricken, dass alle Buttons zunächst die selbe OnClick Routine haben, in der zunächst alles abgearbeitet wird, was bei allen Button gleich ist (z.B. den Bool-Wert setzen) und die dann Abhängig vom Button/Sender weitere Routinen startet.

khh 26. Mai 2011 11:17

AW: auf childclick reagieren
 
Zitat:

Zitat von Jumpy (Beitrag 1103027)
Ich mach das ja noch nicht so lange, aber gibt es überhaupt für ein Panel oder sonstein Control ein Event, das feuert, wenn ein Child-Event feuert? Kann ich mir nicht vorstellen.

genau das war ja sinngemäss meine Ausgangsfrage ;-)
also doch jeden button anfassen :-(


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 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