Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#16

Re: EnumWindowsProc -> EAccessError, OutOfResources

  Alt 2. Aug 2006, 12:57
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.
  Mit Zitat antworten Zitat