![]() |
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... |
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; |
Re: Klick auf ein Panel
Du könntest doch folgendermaßen abfragen:
Delphi-Quellcode:
Statt TLabel kannst Du auch das übergeordnete TControl verwenden. Dann gilt es auch für andere Elemente wie z.B. TEdit.
if (Sender = xy) or (Sender.InheritsFrom(TLabel) and (TLabel(Sender).Parent = xy)) then
begin ... end; Gruß Daddy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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