Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Klick auf ein Panel (https://www.delphipraxis.net/93260-klick-auf-ein-panel.html)

LiS 3. Jun 2007 14:15


Klick auf ein Panel
 
Hallo!

Ich da habe nochmal eine Frage :)
Also ich habe Panels, auf denen sich jeweils mehrere Labels befinden. Ich möchte eine OnKlick Prozedur haben, die auf den Klick irgendwo auf dem Panel reagiert, aber wenn man auf eines von den Labels (auf dem Panel) klickt, wird die Prozedur nicht ausgeführt. Kann ich das irgendwo einstellen oder muss ich für alle Komponenten auf dem Panel die selbe Prozedur ausführen lassen. Letzteres wäre bei mir etwas ungünstig, da ich in der Prozedur den Sender abfrage, der dann immer was anderes ist...

mischerr 3. Jun 2007 14:30

Re: Klick auf ein Panel
 
AFAIK nein.

Habe das mal so gelöst, dass ich im FormCreate alle ChildControls des Panels durchlaufen habe und ihnen die OnKlick des Panels zugewiesen habe.

aus dem Kopf...

Delphi-Quellcode:
for i:= 0 to Panel.ControlCount-1 do
    if Panel.Controls[i].InheritsFrom(TLabel) then
       TLabel(Panel.Controls[i]).OnClick:= Panel.OnClick;

daddy 4. Jun 2007 15:28

Re: Klick auf ein Panel
 
Du könntest doch folgendermaßen abfragen:

Delphi-Quellcode:
if (Sender = xy) or (Sender.InheritsFrom(TLabel) and (TLabel(Sender).Parent = xy)) then
begin
  ...
end;
Statt TLabel kannst Du auch das übergeordnete TControl verwenden. Dann gilt es auch für andere Elemente wie z.B. TEdit.

Gruß Daddy


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