Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: DLL Funktion mit VCL Form in Thread aufrufen?

  Alt 31. Okt 2008, 08:31
zu 1) Es kann funktionieren. Ich hatte mal ein Programm geschrieben, in dem man beliebig viele Fenster erstellen konnte. Jedes Fenster beinhaltete ein Socket. Und die habe ich komplett in Threads ausgelagert. Und das Programm stürzte ständig mit komischen Fehlern ab. Zudem waren die Formulare meist in ihrer Größe etwas anders, als ich es wollte.
Dann habe ich die Sockets in den Threads gelassen und das zugehörige Fenster in den Mainthread geholt. Plötzlich ist alles in Ordnung.
Es ist deine Entscheidung, ich würde davon abraten. Ich kann dir auch leider nicht sagen, warum und wieso da Fehler auftraten. Und ob man das verhindern kann.

2. Nein. Application ist ein globales Objekt. Das funktioniert in einer DLL eher weniger. Mna könntes es vielleicht hinbiegen, dass die Messageschleife funktioniert. Dazu muss man aber TAplication vom Inhalt her kennen. Und was macht man dann, wenn die DLL doch im Mainthread gestartet wird.

3. Vielleicht, da ich nicht weis, wo die Fehler auftreten, will ich es nicht ausschließen. Ein Fenster mit Label (ich würde hier StaticText nehmen) ist wahrscheinlich in jedem nonVCL-Tut enthalten.

4. Du könntest auch über eine ActiveXForm nachdenken. Da habe ich aber keine Erfahrung.

=> Wie gesagt, du machst dir nur Probleme damit. Was soll es für Gründe geben (außer Spielerei) die Grafik aus dem Mainthread herauszunehmen?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat