Mahlzeit!
Ich habe eine Anwendung, die Daten über eine RS232-Schnittstelle bekommt - und zwar ziemlich sporadisch. Bisher habe ich für die Schnittstelle ein Formular, welches ich von der Anwendung aus aufrufe:
Delphi-Quellcode:
procedure TFormMain.MenuProtoOmegaClick(Sender: TObject);
begin
Application.CreateForm(TFormOmegaConnect,FormOmegaConnect);
FormOmegaConnect.ShowModal; FormOmegaConnect.Release;
end;
Nun wäre es aber ganz schön, wenn ich das Formular einfach als zweites Programm hätte, damit ich in der Anwendung mit anderen Dingen weiterarbeiten kann. Da ich aber einige Daten der Anwendung (lesenderweise) brauche, habe ich an einen Thread gedacht. Dementsprechend habe ich ein Thread definiert und erzeuge beim Menuclick den Thread - und rufe im Thread das Formular auf.
Delphi-Quellcode:
procedure TFormMain.MenuProtoOmegaClick(Sender: TObject);
begin
Thread:=TElektronikThread.Create(TRUE);
Thread.Priority:=tpHIGHER;
Thread.FreeOnTerminate:=TRUE;
Thread.Resume;
end;
procedure TElektronikThread.Execute;
begin
Application.CreateForm(TFormOmegaConnect,FormOmegaConnect);
FormOmegaConnect.ShowModal; FormOmegaConnect.Release;
end;
Irgendwie funzt das aber nicht. Das Fenster kommt nicht und wenn ich dann die Anwendung schließe bekomme ich Fehlermeldungen ohne Ende.
Jemand eine Idee, woran es liegt?
Gruss
Bjoern alias easywk