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/)
-   -   Delphi viele Panels mit OnClick, bei click nur eins "gedrückt" ? (https://www.delphipraxis.net/124945-viele-panels-mit-onclick-bei-click-nur-eins-gedrueckt.html)

hronny 27. Nov 2008 22:26


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?

silver-moon-2000 27. Nov 2008 22:41

Re: viele Panels mit OnClick, bei click nur eins "gedrü
 
Zitat:

Zitat von hronny
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?

Nur so ein schnelles Gedankenexperiment:

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

DeddyH 27. Nov 2008 22:56

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.

hronny 27. Nov 2008 23:00

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.

silver-moon-2000 27. Nov 2008 23:09

Re: viele Panels mit OnClick, bei click nur eins "gedrü
 
Zitat:

Zitat von hronny
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.

Das folgende ist nur schnell getippt, kann (und wird also vermutlich auch) Fehler enthalten:

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