AGB  ·  Datenschutz  ·  Impressum  







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

Thread und VCL Zugriff

Ein Thema von Mavarik · begonnen am 3. Jan 2007 · letzter Beitrag vom 3. Jan 2007
Antwort Antwort
Seite 2 von 3     12 3      
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#11

Re: Thread und VCL Zugriff

  Alt 3. Jan 2007, 14:36
Imho gar nicht. Das, was du als VCL-Thread-Funktionalität siehst, ist ja nichts anderes als das Aufrufen der Prozedur Application.Run (siehe DPR-Code bzw. Forms-Unit). In der dort vorhandenen Schleife werden die Messages, die die Anwendung empfängt, verarbeitet. Ich wüsste nicht, wie du die Nachrichten dort unterscheiden willst, ganz davon abgesehen, daß du ein separates Application-Objekt benötigen würdest. Ob nicht im VCL-Code der einzelnen Steuerelemente auf die Application-Variable von Forms verwiesen wird, ist auch noch zu prüfen, also alles sehr schwierig.

Cu,
Udontknow
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.142 Beiträge
 
Delphi 10.3 Rio
 
#12

Re: Thread und VCL Zugriff

  Alt 3. Jan 2007, 15:10
Zitat von Udontknow:
also alles sehr schwierig.

Cu,
Udontknow
lol genau... Wenn es Einfach gewesen wäre, hätte ich es einfach mal programmiert... *lach*

Trotzdem Danke ...

Frank
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#13

Re: Thread und VCL Zugriff

  Alt 3. Jan 2007, 15:15
Ja, das kommt davon, wenn man was durch die Blume sagt.

Ersetze "alles sehr schwierig" durch "sehr wahrscheinlich nicht zu realisieren".

Cu,
Udontknow
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Thread und VCL Zugriff

  Alt 3. Jan 2007, 15:42
Zitat von Udontknow:
Imho gar nicht. Das, was du als VCL-Thread-Funktionalität siehst, ist ja nichts anderes als das Aufrufen der Prozedur Application.Run (siehe DPR-Code bzw. Forms-Unit). In der dort vorhandenen Schleife werden die Messages, die die Anwendung empfängt, verarbeitet. Ich wüsste nicht, wie du die Nachrichten dort unterscheiden willst, ganz davon abgesehen, daß du ein separates Application-Objekt benötigen würdest. Ob nicht im VCL-Code der einzelnen Steuerelemente auf die Application-Variable von Forms verwiesen wird, ist auch noch zu prüfen, also alles sehr schwierig.

Cu,
Udontknow
Es ist möglich die VCL in einem anderen Thread als dem Hauptthread laufen zu lassen. Das ganze ist recht simpel, man muss nur drauf kommen. Und zwar erzeugt man einfach einen Thread und lädt in diesem Thread eine DLL. In der DLL kann dann wieder VCL etc. verwendet werden welche dann im Context des aufrufenden Threads läuft. Man braucht also einfach nu im Execute von TThread die DLL laden, eine Procedure der DLL aufrufen und diese läuft dann eben im Threadcontext
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#15

Re: Thread und VCL Zugriff

  Alt 3. Jan 2007, 15:48
hehe, ok. Ist ein wenig "von hinten durchs Auge in die Brust" geschossen, aber gut. Ob man sich mit dem separaten Modul dann einen Gefallen tut, was Speicherverwaltung & co. angeht...

Cu,
Udontknow
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.142 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Thread und VCL Zugriff

  Alt 3. Jan 2007, 15:59
Zitat von SirThornberry:
In der DLL kann dann wieder VCL etc. verwendet werden welche dann im Context des aufrufenden Threads läuft. Man braucht also einfach nu im Execute von TThread die DLL laden, eine Procedure der DLL aufrufen und diese läuft dann eben im Threadcontext
Eine DLL hat eine eigene Messageque?

Frank
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Thread und VCL Zugriff

  Alt 3. Jan 2007, 16:01
nein, in der DLL musst du natürlich auch Applicaiton.Run aufrufen. Da aber die DLL aus einem Thread aufgerufen wird läuft diese Messageque im Threadcontext. Jeder Thread hat eine eigene MessageQue
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.142 Beiträge
 
Delphi 10.3 Rio
 
#18

Re: Thread und VCL Zugriff

  Alt 3. Jan 2007, 16:03
Zitat von SirThornberry:
nein, in der DLL musst du natürlich auch Applicaiton.Run aufrufen. Da aber die DLL aus einem Thread aufgerufen wird läuft diese Messageque im Threadcontext. Jeder Thread hat eine eigene MessageQue
Ein Thread hat doch auch eine MessageQue... Wo ist der unterschied zur DLL-Lösung?

Frank
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#19

Re: Thread und VCL Zugriff

  Alt 3. Jan 2007, 16:06
die DLL hat nur den Vorteil das du in dem Thread VCL nutzen kannst. Die Delphi-VCL ist so ausgelegt das sie nur im initialisierenden Thread des Moduls läuft. Du kannst die VCL also innerhalb eines Moduls also nicht ohne Probleme in mehreren Threads nutzen. Wenn du ein Modul (die DLL) allerdings innerhalb eines Threads lädst wird die VCL in diesem Thread-Context initialisiert und somit kannst du zum Beispiel ein Formular innerhalb des Threads anzeigen welches den Fortschritt anzeigt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#20

Re: Thread und VCL Zugriff

  Alt 3. Jan 2007, 16:07
Also wenn ich nicht viel Unsinn erzähle, ist es so, daß eine DLL als eigenständiges Modul sozusagen seine "eigene" Forms-Unit, Application-Variable etc. hat, und daher ist zum Beispiel ein in der DLL erstelltes Formular unabhängig von der eigentlichen Anwendung. Ist aber mehr Hörensagen als alles andere.

Cu,
Udontknow
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 20:39 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