AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

PostMessage vs. SendMessage

Ein Thema von ToFaceTeKilla · begonnen am 21. Okt 2008 · letzter Beitrag vom 21. Okt 2008
Antwort Antwort
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#1

PostMessage vs. SendMessage

  Alt 21. Okt 2008, 09:01
Hiho zusammen,

ich hab mal ne Frage bezüglich der oben genannten Funktionen:
Ist es theoretisch möglich, das SendMessage von PostMessage überholt wird? Also dass die Message von Post eher ankommt als von Send?

Thx schonma
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: PostMessage vs. SendMessage

  Alt 21. Okt 2008, 09:12
Nachrichten, die mit SendMessage gesendet werden, rufen direkt die Fensterprozedur des zugehörigen Fenster auf. Nachrichten, die mit PostMessage gesendet werden, werden ich die Nachrichtenschlange des Fenster angereiht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#3

Re: PostMessage vs. SendMessage

  Alt 21. Okt 2008, 09:24
Ja, ich weis. Deswegen stell ich ja die Frage, ob es unter bestimmten Umständen möglich wäre. Weil so von der Logik her, müsste Send ja eher ankommen, da dort ja nicht gewartet wird. Könnte es da irgendwelche besondere Umstände geben, die diese Logik außer Kraft setzen?
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: PostMessage vs. SendMessage

  Alt 21. Okt 2008, 09:36
Mir sind keine bekannt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#5

Re: PostMessage vs. SendMessage

  Alt 21. Okt 2008, 10:05
Hm okay, dann danke ich dir.
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#6

Re: PostMessage vs. SendMessage

  Alt 21. Okt 2008, 12:27
Zitat:
Ist es theoretisch möglich, das SendMessage von PostMessage überholt wird? Also dass die Message von Post eher ankommt als von Send?
Nein und darf es auch nicht.

Alle Nachrichten die mit PostMessage() versendet wurden werden in der Anwendungs-Message-Bearbeitung-Schleife abgearbeitet. Das wäre dann Application.Run und innerhalb dieser wird mit einer Endlosschleife per GetMessage(), TranslateMessage() und DispatchMessage() dieser Messagequeue ausgelesen und verarbeitet. Üblicherweise ruft man dazu Application.ProcessMessages; auf.
SendMessage() dagegen sendet die Nachricht direkt an die Fenster.

Nur wenn der Entwickler konzeptionell nicht das Windowsmessagesytem verstanden hat wird er unter Umständen in einer Message Methode die per SendMessage() aufgerufen wird, einen "asynchronen" und im Grunde "illegalen" Aufruf von Application.ProcessMessages;, der den Queue leert, kann der Eindruck entstehen das Nachrichten die mit PostMessage() versendet wurden früher als die mit SendMessage() gesendeten, eintreffen.

Also

1.) PostMessage(Window, cm_Test);
2.) SendMessage(Window, wm_user);
2.1.) im Fenster wm_User empfangen in Messagemethode
2.2.) darin wird Application.ProcessMessages aufgerufen und somit Message cm_Test abgearbeitet
3.) Program läuft weiter

Gruß Hagen
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#7

Re: PostMessage vs. SendMessage

  Alt 21. Okt 2008, 12:40
Sehr schön, danke für die ausführliche Antwort
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:02 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