Hallo KodeZwerg,
dein Vorschlag erzeugt einen E/A Fehler 104, heißt die Datei kann nicht zum lesen geöffnet werden. Daran arbeite ich gerade noch.
Ich habe insgesamt 0% code der irgend eine art von datei operation beschreibt gezeigt, lediglich wie du auf deine checkboxen per "string"-namen zugreifen kannst.
Aber hier nun was mit Dateioperation:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
i, ii, MinCB, MaxCB : Integer;
Component : TComponent;
sl : TStrings;
Duplicates : TDuplicates;
Sorted, CaseSensitive: Boolean;
begin
// ein paar optionen für die string liste
Duplicates := dupIgnore; // duplikate ignorieren
Sorted := True; // die liste ist sortiert
CaseSensitive := True; // groß/klein schreibung beachten
// grundeinstellung über deine checkboxen
MinCB := 1; // name der kleinsten checkbox wäre hiermit "CheckBox1"
MaxCB := 2; // name der größten checkbox wäre hiermit "CheckBox2"
// erstelle eine stringliste die auf den optionen aufbaut
sl := TStringList.Create(Duplicates, Sorted, CaseSensitive);
try
try
// lade eine datei im aktuellen verzeichniss der .exe
sl.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Datei.txt');
ii := 0;
// datei in checkbox splitten
for i := MinCB to MaxCB do
begin
// finde eine passende checkbox
Component := FindComponent('CheckBox' + IntToStr(i));
// stelle sicher das es wirklich eine gültige TCheckBox ist
if ((Component <> nil) and (Component is TCheckBox)) then
// sind wir immer noch im gültigen bereich
if (ii < sl.Count) then
begin
// schubs eine textzeile in eine checkbox
TCheckBox(Component).Caption := sl.Strings[ii];
Inc(ii);
end
else
// wenn mehr checkboxen als textzeilen vorhanden sind...
TCheckBox(Component).Caption := 'Leer #' + IntToStr(i);
end;
except
// datei nicht gefunden
// datei operation / oder andere fehler etc...
end;
finally
sl.Free;
end;
end;