Hallo,
ich möchte eine Form dynamisch erstellen lassen. Die dynamische Form namens "FormMessengerNW" habe ich bereits in Delphi erstellt und mit labels bestückt. Über eine public Variable bestimme ich einen Text den ich bei der Form "FormMessengerNW" beim OnShow einlesen/anzeigen möchte.
Die "FormMessengerNW" ist ein Hinweisfenster das am Rand eingeblendet wird und mit einem Timer nach ein paar sekunden wieder verschwindet (oder mittels close button).
Diese Form funktionierte an sich bereits als ich sie direkt aufrief, jedoch bekomme ich den dynamischen Aufruf nicht ganz hin.
Das hatte ich bereits probiert:
Form1
Delphi-Quellcode:
...
var
FormMessengerNW_Instanz : TFormMessengerNW;
begin
...
try
showmessage('0');
FormMessengerNW_Instanz := FormMessengerNW.Create(Application.MainForm);
FormMessengerNW_Instanz.OnCreate:= FormMessengerNW.OnCreate;
FormMessengerNW_Instanz.OnShow := FormMessengerNW.OnShow;
FormMessengerNW_Instanz.OnClose := FormMessengerNW.OnClose;
finally
showmessage('1');
FormMessengerNW_Instanz.Show;
showmessage('2');
end;
...
FormDyn
Delphi-Quellcode:
procedure TFormMessengerNW.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
//FormMessengerNW.Release;
end;
procedure TFormMessengerNW.FormShow(Sender: TObject);
begin
showmessage('form open');
end;
procedure TFormMessengerNW.FormCreate(Sender: TObject);
begin
(Sender as TForm).AlphaBlendValue := 235;
lblTitle.Left := 35;
imgClose0.Top := imgClose0.Top;
imgClose0.Left := 324;
imgClose1.Top := imgClose0.Top;
imgClose1.Left := imgClose0.Left;
reMessage.Width := 323;
reMessage.Left := 15;
reMessage.Top := 30;
reMessage.Height := 62;
end;
das showmessage "2" wird nicht mehr eingeblendet.
Es kommt immer "EAcces Vioalation"
Wie würdet ihr soetwas lösen?
VG