![]() |
Prüfen ob mehrere Checkboxen = checked
Morgen,
habe mehrere checkboxen auf einer Form wie kann man jetzt in einem rutsch prüfen ob eine davon checked oder auch nicht ist. habe es mal so versucht schein aber nicht ganz richtig zu sein
Delphi-Quellcode:
Var
i: Integer; Begin For i := 0 To ComponentCount - 1 Do Begin If Components[i] Is TComboBox Then (FindComponent( 'chk'+IntToStr(i)) as TComboBox).checked:= False; End; End; |
Re: Prüfen ob mehrere Checkboxen = checked
Setzt Checked bei alle Checkboxen auf der Form auf False:
Delphi-Quellcode:
EDIT: Zu deinen Code:
var
i: Integer; begin for i := 0 to ControlCount -1 do begin if Controls[i] is TCheckBox then TCheckBox(Controls[i]).Checked := False; end; end; 1. Du willst Checkboxen verwenden, überprüfst aber auf TComboBox 2. Enthält Components auch alle nicht-visuellen Komponenten, Controls nur visuelle, sollte also schneller sein 3. Hast du die aktuell gefundene Komponente im Array Components, verwendest dann aber FindComponent, macht doch keinen Sinn oder? |
Re: Prüfen ob mehrere Checkboxen = checked
TComboBox? Is klar dass dann nich funktioniert oder :stupid:
|
Re: Prüfen ob mehrere Checkboxen = checked
Ok das mit dem Combobox war ziemlich du :stupid: ist mir garnet aufgefallen.
hab jetzt soweit umgeschrieben Das mit dem Array habe ich nicht ganz verstanden |
Re: Prüfen ob mehrere Checkboxen = checked
Warum verwendest du nicht gleich meinen Code?
Also, zu deinen neuen Schnipsel ;-) : 1. Geht die Schleife bis ComponentCount, du greifst aber dann auf Controls zu. Der Index eines Elements in Controls wird wahrscheinlich nicht das selbe Objekt wie in Components sein. 2. Ist FindComponent absolut überflüssig. In Controls bzw. Components sind alle Komponente vom Formular enthalten. Du durchgehst also die Liste (das Array) Controls, überprüfst ob es sich beim aktuellen Objekt (Controls[i]) um eine TCheckBox handelt (is TCheckBox), falls ja kannst du auf das Objekt direkt zugreifen in dem du Controls[i] auf TCheckBox castest (TCheckBox(Controls[i])), dann stehen dir alle Eigenschaften wie Name, Checked, Visible, etc. zur Verfügung. Hoffe das war verstandlich aonsten einfach fragen. EDIT: Wo ist denn dein Code jetzt auf einmal hin? |
Re: Prüfen ob mehrere Checkboxen = checked
Jetzt ja und siehe da es Funzt.
Danke. //Edit:Hab gesehen das ich schrott geschrieben habe |
Re: Prüfen ob mehrere Checkboxen = checked
Hallo,
willst du jetzt eigentlich wissen, wie man alle CheckBoxen disabled bzw. enabled, oder willst du wissen, wie man in einem Rutsch feststellen kann, ob z. B. eine CheckBox von den Vielen gechecked ist oder nicht. Jedenfalls les ich aus deinem ersten Beitrag raus, dass du meine zweite Vermutung nicht und nicht die Erste. |
Re: Prüfen ob mehrere Checkboxen = checked
JA eigentlich wollte ich wissen wie man prüft ob eine von den ganzen Checkboxen checked ist, veruche es mir jetzt so umzubauen das es funzt.
Aber wenn ich auf dem Holzweg bin sag es mir ruhig :mrgreen: |
Re: Prüfen ob mehrere Checkboxen = checked
eigentlich dürft das ja so funktionieren:
Variante 1: -----------
Delphi-Quellcode:
var
i: Integer; b: Boolean; begin b := false; for i := 0 to ControlCount -1 do begin if Controls[i] is TCheckBox then b := b or (TCheckBox(Controls[i]).Checked); end; If b then ShowMessage('ja, eine CheckBox war gechecked!'); end; Variante 2: -----------
Delphi-Quellcode:
var
i: Integer; b: Boolean; begin b := false; for i := 0 to ControlCount -1 do begin if Controls[i] is TCheckBox then b := TCheckBox(Controls[i]).Checked; If b then break; end; If b then ShowMessage('ja, eine CheckBox war gechecked!'); end; |
Re: Prüfen ob mehrere Checkboxen = checked
So geht es auch oder ist das nicht so gut
Delphi-Quellcode:
// Edit Ok deins ist besser hab den Fehler bei mir bemerkt
Var i: Integer;
begin for i := 0 to ControlCount -1 do begin if Controls[i] is TCheckBox then if TCheckBox(Controls[i]).Checked then begin ShowMessage('Hallo'); end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 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