in deinem beispiel ist kortn eine
lokale variable, die nach beenden der procedure "im nirvana" verschwindet...
du musst sie global deklarieren, dann solte es genau so funktionieren, tuts bei mir.
ich hab einfach nur die deklaration in den private teil der form getan...
der vollständigkeit halber:
Delphi-Quellcode:
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
kortn : TImage;
public
{ Public-Deklarationen }
end;
//#######
procedure TForm1.Button1Click(Sender: TObject);
begin
kortn:= TImage.Create(form1);
kortn.Parent:=form1;
kortn.Left:=100;
kortn.Top:=100;
kortn.Width:=100;
kortn.Height:=50;
kortn.Picture.LoadFromFile('C:\StartLogo.bmp');
Button1.Enabled:=False;//Kein doppeltes Create, musst du anders realisieren
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
kortn.Free; //Freigeben!!!
end;