Weil EnumWindowsProc eine Prozedur ist und keine Methode. (maximal kann man das als eine
statische Klassen-Methode deklarieren
class procedure ...; static;
)
Siehe Hilfe.
Beim FindAWindow ist das natürlich egal.
Allerdings haben sie vergessen den Typ der Varible EnumWindowsProc anzugeben.
Variable? Das ist doch die Callback-Funktion.
Aber das Boolean als Result von EnumWindowsProc ist definitiv falsch, denn das muß ein BOOL, bzw. LongBool sein.
Hast du mal nachgesehn wo
EnumWindows definiert ist?
Und schon weißt du, wo man die Hilfe/Informationen dazu findet.
PS: GetMem ... Bedenke daß der Code alt ist, wobei der Tipp noch nicht sooo alt ist, aber dennoch ist das ein
ANSI-Coded, auch wenn er automatisch auf
Unicode läuft,
aber wenn man bei
GetWindowText,
GetClassName mal in die Doku schaut, dann haben die Größenangaben gefälligst in "Characters" und nicht in Bytes angegeben zu werden.
Somit ist seit D2009 das GetMem zu klein ... unbedingt immer mit
... * SizeOf(Char)
die Größe beim GetMem richtig anpassen.
Ach ja, die Größenangabe beim FreeMem ist und war ebenfalls schon immer total falsch.
Entweder richtig, oder am Einfachten garnicht angeben ... also einfach eine
0
.