Hallo Gemeinde,
ich habe ein Problem mit folgendem Code (grob gekürzt):
Delphi-Quellcode:
procedure TForm1.EditKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var geraet:TGeraet;
begin
try
if (key=vk_return) or (key=vk_tab) then Begin
try
geraet:=Tgeraet.create(edit.Text);
except
//mach was
exit;
end;
//mach was
end;//if key
finally
freeandnil(geraet); //<- Zugriffsverletzung
end;
end;
Deklariere ich "geraet" global funktioniert es.
Delphi-Quellcode:
unit test;
interface
uses
//
type
TForm1 =
class(TForm)
//
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
uses //
{$R *.dfm}
var geraet:TGeraet;
//<- So funktioniert es
procedure TForm1.EditKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
Begin
//
end;
Hat irgendwer ne Idee, warum ich das lokal deklarierte geraet nicht freigeben kann?