also, in der onClick procedure einer checkbox möchte ich selbige ändern,also z.b. chechbox.checked=False, aber dann ruft sich das ganze wieder selber auf!! kann ich das irgendwie umgehen??
also, hier nochmal’n beispiel, falls das zu schwer war gibtn lustiegen effekt…
procedure Form1.Checkbox1Click(Sender: TObject);
begin
Checkbox1.Checked:=False;
Checkbox1.Checked:=True;
end;
diese operation mach sicherlich gar keinen sinn, ist ja auch nur ein BEISPIEL…
in meinem programm geht es halt darum das unter bestimmten bedingungen es dann doch nicht checked sein darf…
(aber enabled der checkbox auf false zu setzten bietet sich auch nicht an)
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
also nu mal gaanz langsam! der state der checkbox ändert sich von selbst wenn du darauf klickst, du brauchst nix selber zu ändern. wichtig ist nur was bei einem wechsel passieren soll:
procedure TCheckBox1Click(Sender: TObject);
var
s: PChar;
begin
s=new(PChar);
case Self.CheckBox1.State of
Checked: s:=‚Checked‘;
UnChecked: s:=‚UnChecked‘;
end;
Application.MessageBox(’’,‚CheckBox-State hat zu ‚+s+‘ gewechselt!‘,MB_OK);
delete§;
end;
ach, vergesst es
also, es ging mir ja nur darum das wenn ich den zustand einer chechbox änder das OnClick ereignis ausgelöst wird!! Das ist offenbar nicht vermeidbar
aber es ist ärgerlich, denn der befehl Checkbox.state=cbchecked (oder Checkbox.checked:=True:wink: hat eben nichts damit zu tun, das tatsächlich darauf geklickt wurde!!
und wenn ich das eben innerhalb der click routine mache gibts ne ewige schleife… das ist sch…
hi,
ich kenne mich zwar nicht so in delphi aus, aber ich hatte mal das gleiche Problem. Ich hab es gelöst, in dem ich eine statische Variable definiert habe. Wenn diese Variable null ist, wird sie erhöht der Code im Ereignis ausgefüht und wieder erniedrigt. Ist > 0 wird nichts gemacht.
also, es ging mir ja nur darum das wenn
ich den zustand einer chechbox änder das
OnClick ereignis ausgelöst wird!! Das
ist offenbar nicht vermeidbar
Sag ich ja seit 2 Tagen
aber es ist ärgerlich, denn der befehl
Checkbox.state=cbchecked (oder
Checkbox.checked:=True:wink: hat eben nichts
damit zu tun, das tatsächlich darauf
geklickt wurde!!
Ja und ?
Prüf doch einfach beim Schliessen der Form welche CheckBoxen gecheckt und somit welche Optionen erwünscht aktiviert sind, zum Beispiel im Click-Event des OK- oder „ApplyChanges“-Buttons.
Fertig
Ich bin ziemlich überzeugt davon, dass auch das verbieten des ankreuzen einer Box auch in deinem Fall geht, zum Beispiel durch disablen der Box…