AGB  ·  Datenschutz  ·  Impressum  







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

GetMessage Problem?

Ein Thema von schöni · begonnen am 22. Okt 2005 · letzter Beitrag vom 5. Nov 2005
 
Olli
(Gast)

n/a Beiträge
 
#5

Re: GetMessage Problem?

  Alt 23. Okt 2005, 12:27
Zitat von schöni:
Delphi-Quellcode:
  DoBreakRun := False;
  while Windows.GetMessage(Msg, 0, 0, 0) and not DoBreakRun do
  begin
    Windows.TranslateMessage(msg);
    Windows.DispatchMessage(msg);
  end;
Wes Grundes benutzt du eine Boolen-Variable? Dazu ist doch WM_QUIT da, um die Nachrichtenschleife abzubrechen?!

Zitat von schöni:
Die Variable Window(1) ist doch laut Delphi Hilfe definiert. Nach meinem Verständnis müßte ich doch, falls die Variable Windows nicht ordnungsgemäß initialisiert ist, eine Exception kriegen. Krieg ich aber nicht! Stattdessen bleibt mein Programm an der WHILE-Anweisung einfach stehen, wie ich mit dem integrierten Debugger festgestellt habe. Ich müßte doch hier, falls keine Message ankommt, weiterspringen. Wenn Messages anliegen, was ich mal voraussetze, da ja der Befehlszähler an der While Schleife stehen bleibt, müßte ich bis zum Eintreffen von Alt+F4 ständig TranlateMessage->DispatchMessage->GetMessage abarbeiten
Zeigst du denn das Fenster vorher auch an? Ansonsten kann ich dir sagen warum keine Nachrichten ankommen *g*

Bei den Stilen fehlt WS_VISIBLE und das folgende ist total unsinnig. Wozu würde man Nullen dort stehen lassen?
Zitat von schöni:
WindowStyleExTable: array[TGfxWindowType] of LongWord = (
WS_EX_APPWINDOW, // wtWindow
WS_EX_APPWINDOW, // wtBorderlessWindow
0, // wtPopup
0, // wtBorderlessPopup
WS_EX_PALETTEWINDOW, // wtToolWindow
0); // wtChild
Zitat von schöni:
(1) Und in diesem Codeteil kommt die Variable Window vor, die ich oben erwähnt habe:
Window ist höchstwahrscheinlich eine Eigenschaft (Property) der Klasse. Da du die Klasse ja selber geschrieben hast, solltest du das doch auch wissen. Genaugenommen sollte Window sogar ein Kindfenster der Instanz von TMainWindow sein.

Zitat von schöni:
Kann es sein, das in TranslateMessage/DipatchMessage die besagte Variable Window, statt des Unitbezeichners Windows zur Auffindung der API Funktionen, dort stehen muß, wie wenn diese Unterprogramme zum konkreten Fenster gehören, das die Message(s) abarbeitet?
Nein.

Zitat von schöni:
Oder ist oben der Unitbezeichner richtig?
Soweit ich es sehen kann schon.

Ansonsten ist dir schon bewußt, daß man nur eine Nachrichtenschleife pro Thread haben kann?! Du gibst uns zuwenig um wirklich helfen zu können, wobei Low-Level-VCL-Programmierung sowieso nicht mein Ding ist. Mindestens die Typendefinition deiner Klasse müßte noch her.
  Mit Zitat antworten Zitat
 


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 13:00 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-2025 by Thomas Breitkreuz