hi leute,
bin neu hier im forum und hab gleich ein problem. nach stundenlangen herumprobieren weiss ich nicht mehr weiter
habe erst seit kurzem angefangen mit klassen zu arbeiten.. und scheitere bereits beim constructor bzw. dem pointer darauf.
Hier erstmal die
Unit mit der Class:
Delphi-Quellcode:
UNIT UContainer;
INTERFACE
USES SysUtils;
TYPE
TContainer=Class
Private
FFileName:
String;
Procedure DoSomething;
Public
Constructor Create(
const FileName:
String;AsReadOnly:Boolean);
Destructor Destroy;
override;
End;
IMPLEMENTATION
Constructor TContainer.Create(constFName:
String;AsReadOnly:Boolean);
Begin
inherited Create;
If FileExists(FName)
Then Begin
//HandleFile;
//..
End Else Destroy
End;
Destructor TContainer.Destroy;
Begin
inherited Destroy
End;
END.
und dann..
Delphi-Quellcode:
var
P:Pointer;
Begin
P:=TContainer.Create('
C:\Non-Existing-File.txt',False);
If P=NIL
Then
ShowMessage('
P is NIL')
Else
ShowMessage('
P is NOT NIL');
TContainer(P).DoSomething;
//..erzeugt Exception!
End;
ich möchte also eine klasse erzeugen, die falls ein problem auftaucht (z.b. nicht existierende datei) sich gleich mittels destructor selbst zerstört. Durch aufruf des destructors sollte doch eigentlich auch der pointer darauf auf nil gesetzt werden? das passiert aber nicht! wie kann man sonst herausfinden ob die klasse noch existiert?
vielen dank!
gruss markus