Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Array einer Klasse (TRemotable) an procedure geben

  Alt 28. Okt 2013, 11:19
[DCC Fehler] OXBWOXID.pas(203): E2010 Inkompatible Typen: 'TRemArr' und 'Articles'
[DCC Fehler] OXBWOXID.pas(204): E2010 Inkompatible Typen: 'TRemArr' und 'Updates'
Dann sind Articles und Updates nicht als TRemArr deklariert.

Da der Programmierstil von Dir so schön ist frag ich mal zwischendurch:
Code:
  setLength(Array,0);

  // ist gleichzusetzen mit

  Array := nil;
Auf nil setzen ist schneller, da das gleich in einen Aufruf zum Löschen der Inhalte des Arrays kompiliert werden kann, während bei SetLength erst geprüft werden muss welche Elemente gelöscht werden usw.

Und - nicht ganz unwesentlich zum Verständnis... Warum rufst Du nicht .Destroy sondern
Code:
  Array[i].Free;
auf??
Free prüft vorher, ob der Zeiger nil ist. Das steht auch in der Hilfe:
Zitat:
Rufen Sie Destroy nicht direkt auf. Verwenden Sie stattdessen Free. Die Methode Free überprüft, ob die Objekt-Referenz nicht bereits nil ist und ruft Destroy nur bei Bedarf auf.
http://docwiki.embarcadero.com/Libra...Object.Destroy
Zudem könnte sich dort auch etwas in neueren Delphiversionen ändern (ARC beim Entwickeln für Android mit Delphi ist ein Beispiel), so dass es keinen Sinn macht Destroy direkt aufzurufen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat