Einzelnen Beitrag anzeigen

FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#25

AW: Wie kann ein Zeiger auf eine Funktion als Paramater übergeben werden?

  Alt 2. Dez 2010, 18:46
Wann die Methode aufgerufen wird, bestimmst Du doch selbst in Deiner Klasse. Nach Deiner eigenen Aussage wäre das dann die Behandlung einer bestimmten Windows-Message, so dass "MachWas" dann ein Message-Handler sein müsste.
Ja, stimmt.
Ich mache das mit einer eigenen Message-Handling-Methode.
Das ist hier ganz gut erklärt:http://www.podgoretsky.pri.ee/ftp/Do.../messages.html.

Das Ganze funktioniert für ein Objekt auch tadellos.
Wenn ich ein zweites, oder weitere Objekte erstelle (instanziiere), wird nur die Windows-Message für das zuletzt erstellte Objekt richtig verarbeitet.
Ich habe auch schon eine Vermutung worin das Problem besteht, aber nicht, wie ich es beseitigen kann.
Das Problem liegt wahrscheinlich in der Deklaration des Windows-Message-Nummer:
Delphi-Quellcode:
[...schnipp...]
const
  WM = WM_APP + 400;
[...schnipp...]
Jedes Objekt erhält in der Klasse dieselbe Windows-Message-Nummer.
Ich müßte die als Parameter mit übergeben.
In etwa so:
Delphi-Quellcode:
[...schnipp...]
const
  WM_variabel = WM_APP + iWMNr; //iWMNr soll der übergebene Parameter sein.
[...schnipp...]
Da dies aber eine Konstante sein muss und diese ganz am Anfang definiert wird, meckert der Compiler natürlich, dass er die Variable nicht kennt.
Gibt es dafür eine andere Lösungsmöglichkeit?
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat