AGB  ·  Datenschutz  ·  Impressum  







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

was macht AllocateHWND genau?

Ein Thema von snook · begonnen am 10. Aug 2011 · letzter Beitrag vom 10. Aug 2011
Antwort Antwort
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

AW: was macht AllocateHWND genau?

  Alt 10. Aug 2011, 13:12
Und in welchem Thread wird TDllTimer erzeugt? Davon ist abhängig wer/was die Nachrichten in die WindowProc von TDLLtimer befördert.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
snook

Registriert seit: 25. Jun 2010
94 Beiträge
 
Delphi 2005 Professional
 
#2

AW: was macht AllocateHWND genau?

  Alt 10. Aug 2011, 13:18
TDLLTimer wird z.B. in einer DLL erzeugt. und diese DLL wird aus dem Kontext des Hauptthreads geladen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

AW: was macht AllocateHWND genau?

  Alt 10. Aug 2011, 13:20
Zitat:
TDLLTimer wird z.B. in einer DLL erzeugt. und diese DLL wird aus dem Kontext des Hauptthreads geladen
Dann steht der Grund ja in meinem ersten Post in diesem Thema.
Es ist unerheblich in welchem Programmmodul der Code zum erzeugen liegt und es ist auch unerheblich in welchem Threadcontext die DLL geladen wurde.
Der Threadcontext in dem das Fensterhandle angefordert wird ist maßgebend.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
snook

Registriert seit: 25. Jun 2010
94 Beiträge
 
Delphi 2005 Professional
 
#4

AW: was macht AllocateHWND genau?

  Alt 10. Aug 2011, 13:22
ooohh krass. ich hab die ganze zeit gedacht die message loop ist vom modul abhängig. perfekt, dank dir

ähem, dann hab ich wohl einiges anderes auch noch nicht verstanden. wieso bekommt denn dann der klassische TTimer aus delphi kein WM_TIMER Event geschickt, wenn er in einer DLL erzeugt wurde?

Geändert von snook (10. Aug 2011 um 13:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.316 Beiträge
 
Delphi 12 Athens
 
#5

AW: was macht AllocateHWND genau?

  Alt 10. Aug 2011, 15:01
Nein, die Message-Behandlung ist immer vom threadabhängig.

Die Message-Behandlung in Komponenten ist von dem Thread abhängig, in welchem sie erstellt werden.

Grundsätzlich hat erstmal jeder Thread keine Message-Queue.
Sobald die erste anfrage an diesen Thread gestellt wird, wird für diesen Thread eine solche Queue (Warteschleife) eingerichtet.

PostThreadMessage schickt die Nachricht direkt an die Queue eines Threads und PostMessage/SendMessage schicken die Nachrichten an den Thread, in welchem diese Komponente erstellt wurde.

Und eine "Message-Loop" verarbeitet nur Messages des Threads, in welchem sie läuft.
Für den Hauptthread stellt Delphi-Referenz durchsuchenApplication eine "Message-Loop" bereit und für andere Threads müßte man das selber machen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

AW: was macht AllocateHWND genau?

  Alt 10. Aug 2011, 17:23
ähem, dann hab ich wohl einiges anderes auch noch nicht verstanden. wieso bekommt denn dann der klassische TTimer aus delphi kein WM_TIMER Event geschickt, wenn er in einer DLL erzeugt wurde?
Weil der sich an das Application-Objekt wendet. Und diese sind verschieden in DLL und Exe.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  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 09:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz