ich möchte aus einer CheckListBox mehrere Formulare die geöffnet sind schliessen. ( mittels checkbox)
( Der Eintrag in die Textfile erfolgt beim öffnen des jeweiligen Formulars )
Jetzt habe ich diesen Code gebastelt : Teste einfach nur rum. Keine Ahnung ob das clever ist. Aber sonst lern ich es wohl nie.

In der Ziele mit : Index := sl.IndexOfName('Frm_USER_UEBERSICHT');
läuft er mir in einen Fehler.
Er sagt mir aber leider nicht was das Problem ist.
Kann mir vll jemand helfen und erklären was hier das Problem ist ?
Code: Alles auswählen
var
i, i2, i3 : integer;
MainRoot : String;
Index : integer;
sl :TStringList;
begin
MainRoot := ExtractFilePath(Application.ExeName) + '\Programm_Dateien\TXT_OpenForms.txt';
// Formulare schliessen
BoxStyle := MB_ICONQUESTION + MB_YESNO;
Reply := Application.MessageBox('Möchten Sie diese Formulare schliessen?', 'MessageBoxDemo', BoxStyle);
if Reply = IDYES then
begin
for i:=0 to CheckListBox1.Count-1 do
if CheckListBox1.Items[i] = 'Frm_USER_UEBERSICHT' then
begin
Frm_USER_UEBERSICHT.close;
end;
end;
// Eintrag in TxtFile löschen
for i2:=0 to CheckListBox1.Count-1 do
if CheckListBox1.Items[i] = 'Frm_USER_UEBERSICHT' then
begin
MainRoot := ExtractFilePath(Application.ExeName) + '\Programm_Dateien\TXT_OpenForms.txt';
if FileExists(MainRoot) = True then
begin
Index := sl.IndexOfName('Frm_USER_UEBERSICHT');
sl:=TStringList.Create;
sl.LoadFromFile(MainRoot);
for i := 0 to sl.Count-1 do
sl.Delete(index);
sl.SaveToFile(MainRoot);
sl.free;
end;
end;
Lg Bernie