![]() |
Delphi-Version: 7
TCheckBox.Checked per Schleife
Hallo,
kann mir jemand verraten, warum folgender Konstrukt nicht läuft ? :
Code:
es wird nur der erste zutreffende Wert in HddHost umgesetzt,
procedure TfrmHost.FormShow(Sender: TObject);
var i : Integer; begin for i := 1 to 26 do if frmDetect.HddHost[i] then cbHost[i].Checked := True; // HddHost[i] : array[1..26] of Boolean // cbHost[i] : array[1..26] of TCheckBox bei
Code:
entsprechend nur der letzte
for i := 26 downto 1 do
. . . HddHost[i] enthält 8 Werte = True, 18 Werte = False :gruebel: ich steh' irgendwie auf dem Schlauch . . . Problem gelöst (siehe Post #8), weiß allerdings nicht wodurch . . . |
AW: TCheckBox.Checked per Schleife
Hallo,
läuft es ohne if besser?
Delphi-Quellcode:
Wo werden denn die Werte für frmDetect.HddHost[i] gesetzt?
procedure TfrmHost.FormShow(Sender: TObject);
var i : Integer; begin for i := 1 to 26 do cbHost[i].checked := frmDetect.HddHost[i]; // HddHost[i] : array[1..26]Boolean // cbHost[i] : array[1..26] of TCheckBox Grüße Klaus |
AW: TCheckBox.Checked per Schleife
Delphi-Quellcode:
Liefert der Ausdruck, denn einen Wahrheitswert zurück?
if frmDetect.HddHost[i]
|
AW: TCheckBox.Checked per Schleife
Zitat:
bei True eine '1' ausgeben lassen) @Klaus01: die Werte werden im Formular frmDetect gesetzt (Ini.ReadBool). |
AW: TCheckBox.Checked per Schleife
Zitat:
Grüße Klaus |
AW: TCheckBox.Checked per Schleife
Zitat:
Control einzeln ansprechen. Das Einlesen geschieht auf dem Formular frmDetect, die obige Schleifenprozedur ist auf einer anderen Form (sonst würde ich ja ohne frmDetect aufrufen). Das Memo zum überprüfen habe ich mir ebenfalls auf das Formular mit den CheckBoxen gelegt, die Werte sind zum Zeitpunkt des Aufrufs vorhanden, werden nur nicht in einem array of TCheckBox umgesetzt. |
AW: TCheckBox.Checked per Schleife
Delphi-Quellcode:
mit dem obigen Code wird die Checkbox in der Liste nur gesetzt wenn hddHost[i] true ist,
if frmDetect.HddHost[i] then cbHost[i].Checked := True;
wenn er false ist hat die Checkbox einen zufälligen Wert. Grüße Klaus |
AW: TCheckBox.Checked per Schleife
Zitat:
Code:
. . . und komischer Weise werden jetzt alle Checkboxen richtig gesetzt. ?:gruebel:
procedure TfrmHost.FormShow(Sender: TObject);
var i : Integer; begin for i := 1 to 26 do begin if frmDetect.HddHost[i] then cbHost[i].Checked := True else cbHost[i].Checked := False; if frmDetect.HostEnabled[i] then begin cbHost[i].Enabled := True; cbHost[i].Caption := Char(i +64) + ' ' + GetDriveModelName(Char(i +64)); end else begin cbHost[i].Enabled := False; cbHost[i].Caption := Char(i +64) + ' '; end; end; end; |
AW: TCheckBox.Checked per Schleife
Zitat:
Delphi-Quellcode:
Das ist nicht nur kürzer, sondern IMHO auch noch verständlicher.
cbHost[i].Checked := frmDetect.HddHost[i];
|
AW: TCheckBox.Checked per Schleife
.. danke, ja ist verständlicher . . . war wohl schon etwas zu spät.:)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 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