Delphi-PRAXiS
Seite 1 von 2  1 2      

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 TCheckBox: Komisches Verhalten mit Ereignis OnClick (https://www.delphipraxis.net/149064-tcheckbox-komisches-verhalten-mit-ereignis-onclick.html)

RWarnecke 13. Mär 2010 10:10


TCheckBox: Komisches Verhalten mit Ereignis OnClick
 
Hallo zusammen,

ich habe auf einer Form 3 Checkboxen. 2 davon sind gleich sichtbar und die dritte wird erst sichtbar, wenn bei der ersten und zweite Checkbox der Status False ist. In dieser Procedure setze ich den Status der Checkboxen :
Delphi-Quellcode:
procedure Form1.FormShow(sender: TObject);
begin
  CheckBox1.Checked := False;
  CheckBox2.Checked := False;
  CheckBox3.Checked := True;
end;
Zu jeder Checkbox ist der Ereignis OnClick definiert. Wird jetzt der Status für CheckBox1 und CheckBox2 gesetzt, wird das OnClick-Ereignis ausgeführt. Nur das OnClick-Ereignis von CheckBox3 wird leider nicht ausgeführt.

Wo ist der Fehler ?

DeddyH 13. Mär 2010 10:15

Re: TCheckBox: Komisches Verhalten mit Ereignis OnClick
 
Das kann ich hier nicht nachvollziehen. Kannst Du mal *.pas und *.dfm anhängen?

[edit] Was passiert, wenn Du im OI den Checked-Status von CheckBox3 auf false stellst? [/edit]

RWarnecke 13. Mär 2010 10:21

Re: TCheckBox: Komisches Verhalten mit Ereignis OnClick
 
Das wird etwas schwierig, da es in einem großen Projekt ist. Was für Infos bräuchtest Du denn noch ? Ich versuche gerade mal ein kleine Beispielprogramm zu machen.

DeddyH 13. Mär 2010 10:21

Re: TCheckBox: Komisches Verhalten mit Ereignis OnClick
 
Siehe mein Edit oben.

RWarnecke 13. Mär 2010 10:25

Re: TCheckBox: Komisches Verhalten mit Ereignis OnClick
 
Liste der Anhänge anzeigen (Anzahl: 1)
Im Anhang ein Screenshot von den Properties der ChkBox. Alle drei Checkboxen haben die gleichen EInstellungen. Das habe ich schon kontrolliert.

DeddyH 13. Mär 2010 10:31

Re: TCheckBox: Komisches Verhalten mit Ereignis OnClick
 
Wenn Du Checked zur Laufzeit setzt, wird das OnClick-Ereignis nur dann ausgelöst, wenn Checked vorher anders stand (gerade zur Sicherheit ausprobiert).

RWarnecke 13. Mär 2010 10:36

Re: TCheckBox: Komisches Verhalten mit Ereignis OnClick
 
Ok, das könnte ein Grund sein. Wie kann ich es trotzdem realisieren, das wenn ich Checked setze, das OnClick-Ereignis ausgeführt wird ?

DeddyH 13. Mär 2010 10:39

Re: TCheckBox: Komisches Verhalten mit Ereignis OnClick
 
Vielleicht so?
Delphi-Quellcode:
procedure Form1.FormShow(sender: TObject);
begin
  CheckBox1.Checked := False;
  CheckBox2.Checked := False;
  if not CheckBox3.Checked then
    CheckBox3.Checked := True
  else
    CheckBox3Click(CheckBox3);
end;

RWarnecke 13. Mär 2010 10:44

Re: TCheckBox: Komisches Verhalten mit Ereignis OnClick
 
So hatte ich es zu erst. Da ich über die CheckBox3 eine andere Komponente aktiviere oder deaktiviere, fand ich die Lösung zwar für brauchbar aber nicht schön. Ich habe mittlerweile es so gemacht. Dass ich die zu aktivierende Komponente vom Visible Status genauso gesetzt habe wie der Status von CheckBox3 beim Start der Anwendung ist. Wird jetzt der Status von CheckBox3 nochmal geändert, so wird auch die abhängige Komponente entsprechend angezeigt.

Danke für Dein Hilfe Detlef. Bin wieder etwas schlauer geworden.

DeddyH 13. Mär 2010 10:46

Re: TCheckBox: Komisches Verhalten mit Ereignis OnClick
 
Gibt es denn keine Möglichkeit, die Logik besser von der Darstellung zu trennen? Weil wirklich dolle ist das so wie oben ja nicht gerade.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26 Uhr.
Seite 1 von 2  1 2      

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