Thema: Delphi Form dynamisch erzeugen

Einzelnen Beitrag anzeigen

whiteF

Registriert seit: 14. Okt 2008
45 Beiträge
 
#1

Form dynamisch erzeugen

  Alt 16. Okt 2016, 23:35
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
  Mit Zitat antworten Zitat