
Zitat von
Jonas:
Delphi-Quellcode:
if oldCount <> high(WindowList) then begin
oldCount := high(WindowList);
Count wäre Length() von einem
Array, High() ergibt den höchsten Index, nicht die Anzahl. Count heisst aber nunmal Anzahl.

Zitat von
Jonas:
Delphi-Quellcode:
for i := 0 to high(Blabel) do
Blabel[i].Free;
for i := 0 to high(task) do
task[i].Free;
for i := 0 to high(taskicon) do
taskicon[i].Free;
Du gibst die Elemente frei, aber wo machst du das
Array kleiner bzw. setzt es auf 0 etc? Wo ist das SetLength() ?

Zitat von
Jonas:
Außerdem hab ich noch ne Frage. Wie unterscheidet sich For i := Low(WindowList) To High(WindowList) Do
genau von for i := 0 to Length(WindowList) - 1 do
?
Gar nicht in dem Sinne. Du benutzt dynamische Arrays und die sind immer 0-basierend beim Index. Daher wäre von 0 bis Length()-1 das gleiche. Ich verwende aber immer Low() to High(), weil ich dadurch einen Code schreibe der immer funktioniert. Egal ob ich in einem halben jahr ein dynamisches
Array zu einem 1 basierendem statischen
Array umstelle oder nicht. Auch solche klassischen Fehler wie die Übergabe eines nicht 0-basierenden statischen Arrays an eine Procedure die einen dynamische
Array als Parameter hat und dann in der Procedure mit der alten Indizierung auf das
Array zugreifen, kann mir dadurch nicht passieren. (bei der Übergabe wird das
Array automatisch zu einem 0-basierenden).
Aber wie gesagt, in deinem Fall hier, macht es keinen Unterschied.