![]() |
Re: WM_APPCOMMAND - Nur benötigte Commandos abfangen?!
Zitat:
|
Re: WM_APPCOMMAND - Nur benötigte Commandos abfangen?!
Ich wollte ja nur grad nachsehen, was dort gemacht wird. Aber ich habe keine Methode gefunden.
|
Re: WM_APPCOMMAND - Nur benötigte Commandos abfangen?!
Zitat:
ps: "..., call dword ptr [ecx-$10]" ist "DefaultHandler(Msg)". |
Re: WM_APPCOMMAND - Nur benötigte Commandos abfangen?!
Dazu müsste ich erstmal das Programm schreiben.
inherited (für Messages) ist im Standardfall der Defaulthandler? Ist ja eine ganz neue Erkenntnis. Edit: Das ist ja interessant. Das musste ich jetzt doch einmal durchtesten. Der Defaulthandler wird schon in TObject als virtuelle Methode deklariert und wird für Message-Methoden (welche ja dynamisch sind) immer bei inherited aufgerufen. Weiß nicht, ob das so bekannt ist. Mir war es nicht bekannt. Denn bisher wusste ich nur, dass ein inherited nur ausgeführt wird, wenn:
==>Also neben der Methode Dispatch ist auch noch die Methode DefaultHandler (beide von TObject implementiert) wichtig für Message-Methoden. |
Re: WM_APPCOMMAND - Nur benötigte Commandos abfangen?!
Zitat:
"inherited" ist die beste Lösung, da der Compiler sich darum kümmert, was aufgerufen werden muss. Bei WM_ACTIVATE wäre es (in meiner Delphi-Version) TCustomForm.WMActivate() - aber das braucht den Entwickler nicht zu interessieren (und kann sich auch von Delphi-Version zu Delphi-Version ändern). Würdest du DefWindowProc() aufrufen, dann würdest du die "Vererbung" aufbrechen und diverse Handler übergehen. |
Re: WM_APPCOMMAND - Nur benötigte Commandos abfangen?!
Ich hab das nochmal in meinem Edit zusammengefasst. Das ist ein etwas anderes Verhalten als ich von inherited erwartet hätte. Das kann man ja in Zuklunft sicher gewinnbringend einsetzen.
|
Re: WM_APPCOMMAND - Nur benötigte Commandos abfangen?!
Hm ist ja interessant. Also ist inherited; die beste Lösung, weil die dem Compiler mehr Spielraum lässt um die optimalere Lösung zu finden. Ok, habe sowieso inherited genommen, schon weils einfach "smaller" ist. Aber ertsmal Thx für die Zusatzinfo am Rande.
mfg. chri_ri |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 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