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