Schau dir mal die Variablen a und b an.
Delphi-Quellcode:
a := copy(newlist[i],0,pos(':', newlist[i])-1);
b := copy(newlist[i],pos(':', newlist[i])+2,length(newlist[i])-pos(':', newlist[i])-2);
Dieser Code ist zu kompliziert und könnte auch Fehler enthalten.
Die Lösung ist eine eigene Funktion, um den Eintrag in zwei Teile zu zerlegen:
Delphi-Quellcode:
procedure SplitEintrag(const eintrag:string; var a,b:string);
begin
// bitte selbst lösen
end;
Dadurch wird der Sourcecode deutlich vereinfacht.
Delphi-Quellcode:
procedure TForm1.ExecuteAddons(aktuell: string);
var newlist: TStringlist;
i,o,u: integer;
a,b: string;
begin
newlist := TStringlist.Create;
newlist.LoadFromFile(aktuell+'AddOns.txt');
for i := 0 to newlist.count-1 do
begin
SplitEintrag(newlist[i], a, b);
o := Checklistbox1.Items.IndexOf(a); // hier Breakpoint setzen
if (o>=0) and (pos('enabled',b) >=0) then Checklistbox1.Checked[o]; // neue Version
end;
newlist.Free; // hat gefehlt
end;
Wenn du an der markierten Zeile einen Breakpoint setzt, dann kann du den Inhalt der Variablen
a und b überprüfen. (einfach Mauszeiger drüber halten)
=> Probleme in kleinere Teile zerlegen - das ist der Schlüssel zum Erfolg beim Programmieren