![]() |
Checkboxen zurücksetzen?
Hallo,
ich habe 20 check boxen und die möchte ich alle durch einen klick auf einen Button wieder zurücksetzen. Also das nichts mehr angekreuzt ist. |
Re: Checkboxen zurücksetzen?
Zuerst mal die simple Methode (da kommen nachher bestimmt weitere Vorschläge, aber ich mache jetzt Feierabend ;)):
Delphi-Quellcode:
procedure TMainform.btnResetClick(Sender: TObject);
begin CheckBox1.Checked := false; CheckBox2.Checked := false; CheckBox3.Checked := false; CheckBox4.Checked := false; ... CheckBox20.Checked := false; end; |
Re: Checkboxen zurücksetzen?
Hi;
was spricht gegen das hier:
Delphi-Quellcode:
... ich würds so machen... vor allem angenehmer, wenns nich 20 sondern 200 Checkboxenen sind...
procedure zuruecksetzen;
var i:integer; begin for i:=1 to 20 do begin TCheckBox(Form1.FindComponent('Checkbox'+inttostr(i))).checked:=false; end; end; |
Re: Checkboxen zurücksetzen?
Das setzt aber voraus, dass die Checkboxen auch durchgehend "Checkbox1" bis "CheckBox20" heißen. Ansonsten könnte man sich über das Tag behelfen.
|
Re: Checkboxen zurücksetzen?
Es gibt übrigens auch die Komponente TCheckListBox. Ideal, wenn man sehr viele gleichartige Checkboxen braucht.
|
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Delphi-Frage |
Re: Checkboxen zurücksetzen?
Hallo,
was auch geht, ein Array mit den in Frage kommenden Checkboxen zu erstellen. Funktioniert auch dann, wenn noch mehrere andere Checkboxen vorhanden sind.
Delphi-Quellcode:
var
Mein_CH_box : Array [0..19] OF TCheckbox; procedure TForm1.FormCreate(Sender: TObject); begin Mein_CH_box[ 1] := Checkbox1; // CheckBoxen in Array eintragen Mein_CH_box[ 2] := Checkbox3; Mein_CH_box[ 3] := Checkbox5; Mein_CH_box[ 4] := Checkbox6; .. .. .. Mein_CH_box[19] := Checkbox38; end; procedure TForm1.ClearChecks; var i : Integer; begin for i := 0 TO 19 DO Mein_CH_box[i].Checked := False; // Checked entfernen end; |
Re: Checkboxen zurücksetzen?
Ehrlich gesagt finde ich shmias Vorschlag am Elegantesten.
|
Re: Checkboxen zurücksetzen?
Hier noch eine Möglichkeit, allerdings nur wenn Du alle CheckBoxen ändern willst.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var i : Integer; c : TObject; begin for i := 0 to ComponentCount-1 do begin c := Components[i]; if (c is TCheckBox) then (c as TCheckBox).Checked := False; end; end; |
Re: Checkboxen zurücksetzen?
@ DeddyH: Du gehts doch selbst von aus, das die alle gleich heißen :lol:
@ hjm: hierfür würde ich ja wieder ne for-schleife setzten... allein aus faulheit... :D
Delphi-Quellcode:
Ich würd auch wie Shima sagt machen, solange ich die ganzen CheckBoxen nicht kreuz und quer auf der Form verteilt habe, und diese Funktion nur zum zurücksetzten brauche...
procedure TForm1.FormCreate(Sender: TObject);
begin Mein_CH_box[ 1] := Checkbox1; // CheckBoxen in Array eintragen Mein_CH_box[ 2] := Checkbox3; Mein_CH_box[ 3] := Checkbox5; Mein_CH_box[ 4] := Checkbox6; .. .. .. Mein_CH_box[19] := Checkbox38; end; |
Re: Checkboxen zurücksetzen?
@Bastler,
Zitat:
Aber das Beispiel sollte zeigen, das dies keine Rolle spielt. Sondern vielmehr die Reihe durch die Übertragung ins Array definiert wird. Aber generell ist die "Shima" Lösung die eleganteste, wenn Sie passt. Grüße Hans-Josef |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 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