AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Modales Formular in einem Thread

Ein Thema von easywk · begonnen am 2. Jun 2004 · letzter Beitrag vom 2. Jun 2004
Antwort Antwort
easywk

Registriert seit: 9. Jul 2003
Ort: Schwanewede
117 Beiträge
 
Delphi 7 Enterprise
 
#1

Modales Formular in einem Thread

  Alt 2. Jun 2004, 13:58
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
Björn
if all else fails - read the instructions
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Modales Formular in einem Thread

  Alt 2. Jun 2004, 14:55
Die Borland-VCL ist nicht Thread-Save.

D.h. alle Formulare müssen im Kontext des Primären Threads laufen. Alles andere Kracht!

Das einzige wäre, wenn Du zwar die Komponenten (mit Wrapper für Eventbehandlung) in den Thread legen würdest. Die Kommunikation mit dem Formular würde dann z.B. über Windows-Messages erfolgen können.
  Mit Zitat antworten Zitat
easywk

Registriert seit: 9. Jul 2003
Ort: Schwanewede
117 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Modales Formular in einem Thread

  Alt 2. Jun 2004, 15:18
Zitat von Bernhard Geyer:
Die Borland-VCL ist nicht Thread-Save.
Schade, schade, schade.
Ich denke mal, dass nur die Komponenten im Thread liegen macht wenig Sinn und das Ganze unnötig kompliziert. Vielleicht fällt mir ja noch ne andere Lösung ein, sonst muss es halt so bleiben, wie es momentan ist ...

Thanx for help
Björn
if all else fails - read the instructions
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz