![]() |
viele Panels mit OnClick, bei click nur eins "gedrückt&
Hi!
Ich habe eine eigene Komponente gebastelt in der ich Panels erzeuge die ein Mouseover haben. Nun sollen die so eine Art "Umschalter" wie eine Checkbox sein, wenn gedrückt dann sieht das Panel optisch anders aus. Jetzt möchte ich aber das immer wenn ich ein anderes anklicke, das vorhergehende deselectiert wird, wie es bei einer RadioGroup funktioniert. Nur wie stell ich das an? Den Status setz ich ja in der Komponente, aber dieses "abwählen" muss sicher die Hauptform machen oder? |
Re: viele Panels mit OnClick, bei click nur eins "gedrü
Zitat:
Gehe in Deiner Click-Methode alle Komponenten des Parents Deines Panels durch. Wenn Diese Komponente den richtigen Typ hat, deselektiere sie. Die RadioGroup / der RadioButton macht imgrunde auch nichts anderes. HTH |
Re: viele Panels mit OnClick, bei click nur eins "gedrü
Oder alle Panels in einer Liste verwalten und das jeweils aktive merken. Wird ein anderes geklickt, wird das gemerkte deaktiviert, das geklickte aktiviert und gemerkt.
|
Re: viele Panels mit OnClick, bei click nur eins "gedrü
Die Ideen find ich nicht schlecht, dazu müsste ich aber dem Parent erstmal irgendwie mitteilen das ich ein Panel gedrückt habe. Bisher funktionieren sie nur unabhängig voneinander.
|
Re: viele Panels mit OnClick, bei click nur eins "gedrü
Zitat:
Der Code kommt in die Methode Deines Panels, in der Du "umschaltest"
Delphi-Quellcode:
...
if Parent <> nil then begin for i := 0 to Parent.ComponentCount - 1 do begin if (Parent.Components[i] is = DeinPanelType) and (Parent.Components[i] <> self) then (Parent.Components[i] as DeinPanelType).Deactivate; end; end; ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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 by Thomas Breitkreuz