Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

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

AW: Kann ich Windows-Messagehandler einer Form auslagern?

  Alt 18. Dez 2013, 17:08
Na zu dynamischen (und auch virtuellen) Methoden in Delphi habe ich hier mal was geschrieben:
http://forum.delphi-treff.de/index.p...mic#post231727

Eine Message-Methode ist ja nix weiteres als eine Dynamische Methode, bei der wir die Nummer vorgeben (= die Zahl hinter dem Wort "message"). Und getDynamethod macht nix weiter als die Methodentabelle nach der entsprechenden message-ID (= Nummer der dynamischen Methode) zu durchforsten. Dazu muss man ggf. auch rekursiv durch die Elternklassen laufen (gilt zwar nicht für das Problem in diesem Thread, aber davon weiß GetDynaMethod ja nix).

Und ein Aufruf einer Methode mit einer anderen Parameterliste ist erstmal kein Problem. Die Maschinensprache kennt sowieso keine Parameter. Die werden per Konvention (stdcall, register, pascal, ...) vorher irgendwo hingelegt. Und bei TMessage sind das ja 4 Zahlen die dann einfach auf dem Stack liegen. Die kann dann die aufgerufene Methode frei interpretieren. Das der Compiler da meckert, wenn die Parameterliste nicht übereinstimmt, ist was Delphieigenes (und auch in den meisten anderen Sprachen). Müsste aber nicht sein. Könnte man auch dem Programmierer überlassen, dass er aufpasst was er macht.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat