Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

AW: Eventprocedur bei virtuellen Objekten

  Alt 27. Nov 2014, 16: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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

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