Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#16

AW: Eventprocedur bei virtuellen Objekten

  Alt 27. Nov 2014, 17:44
Man kann auch über die Reihenfolge der Units im Uses regeln, was verwendet wird. -> immer das der letzten Unit (wenn man keinen Namespace angibt)

Zitat:
Delphi-Quellcode:
if ExportGrid <> nil then
  ExportGrid.Free;
PS: Im Free ist bereits eine Prüfung eingebaut.
Du kannst also auch direkt das Free aufrufen.


Zitat:
Delphi-Quellcode:
try
      GridExcel:= TAdvGridExcelIO.Create(nil);
finally
      GridExcel.Free;
end
Ist dir noch nicht aufgefallen, daß dir der Delphi-Compiler hier zurecht eine Warnung um die Ohren haut?
Entweder das Crerate direkt vor dem Try, oder vorher die Variable initialisieren (GridExcel:=nil; ),
denn wenn es vor oder in dem Create knallt, dann geht das Free auf die nicht-initialisierte Variable los und es knallt womöglich nochmal-
* entweder es zerschoßt dir zufällig irgendwas Anderes
* oder eine weitere Exception im Free (meistens Zugriffsverletzung) schrottet/überdeckt dir die eigentliche Fehlermeldung
$2B or not $2B

Geändert von himitsu (27. Nov 2014 um 17:49 Uhr)
  Mit Zitat antworten Zitat