Entwickler-Ecke
Windows API - Processmessages ALternative in COnosolenanwendungen [DONE]
markus\win32 - Do 01.05.03 18:50
Titel: Processmessages ALternative in COnosolenanwendungen [DONE]
Hi
meine Consolenanwendung macht öfters prozesorintensive aufgaben, und soll aber weiterhin auf windowsmessages reagieren, also so als ob ich Application.Processmessages mache. Nur muss ich dazu die Forums unit einbinden, was mein 50kb Projekt auf 400kb hochjagt. Also würde ich gerne wissen wie ich selber, zumindest bestimmte wichtige windowsmessages agfange und auswerte) also z.B. close events ...
Markus
wulfskin - Do 01.05.03 18:55
Ich weiss jetzt nicht ob das ein guter Tipp ist, aber wenn du Threads verwendest, dann brauchst du "nur" die Unit Classes. Ob die Intern auch Forms benötigt, weiss ich nicht.
Ansonsten erstell den Thread mit der Windows API! Ich glaub im Forum gibt es ein Beispiel von Andreas X dazu.
Gruß wulfskin!
markus\win32 - Do 01.05.03 18:57
Naja kommt darauf an was einfacher ist:
Paar verscheidene messages auszuwerten, oder dem teil des codes in einem extra thread ausführen zu lassen
Delete - Do 01.05.03 19:09
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| {----------------------------------------------------------------------------- Procedure : ProcessMessages Author : Nico bendlin Date : 2003-02-08 Purpose : Replacement for Application.ProcessMessages Arguments : hWnd: DWORD Result : None -----------------------------------------------------------------------------} procedure ProcessMessages(hWnd: DWORD); var Msg: TMsg; begin while PeekMessage(Msg, hWnd, 0, 0, PM_REMOVE) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; end; |
Als Handle mußt du allerdings das Handle eines Fensters angeben, an das die Nachrichten gehen, da es eigentlich nur bei Fenstern Sinn macht. Eine Konsolenanwendung, die in einer Schleife gerade was rechnet, kann so wie so keine Eingaben entgegennehmen.
markus\win32 - Do 01.05.03 19:22
das sollte auch nur auf close und minimize regieren
Delete - Do 01.05.03 19:25
Das Ding läuft doch in der Konsole oder etwa nicht? Und die sollte auch reagieren, wenn dein Programm beschäftigt ist, da sie von Windows bereitgestellt wird.
markus\win32 - Do 01.05.03 19:35
ok dann ist das ja eh überflüssig :)
Danke - Markus
Delete - Do 01.05.03 19:37
Gerade ausprobiert, ist überflüssig. Es sind praktisch zwei Programme, dein Programm und die Konsole. Die Konsole wird von Windows bereitgestellt und das Fenster macht ja eh nichts außer einen Container für dein Konsolenprogramm bereitzustellen, kann also noch ohne weiteres Nachrichten bearbeiten, wärend dein Programm arbeitet.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!