Hast du den Code eigentlich verstanden?
Zitat:
function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall;
heißt eigentlich
function EnumWindowsProc(wHandle: HWND; LParam: LongInt): Bool; stdcall;
Wobei LParam das LParam aus dem Aufruf von EnumWindows enthält
Code:
EnumWindows(@EnumWindowsProc, [color=#ff0000]LongInt(ListBox1)[/color]);
function EnumWindowsProc(wHandle: HWND; [color=#ff0000]LParam: LongInt[/color]): LongBool; stdcall;
begin
[color=#ff0000]TListView(LParam)[/color].Item.Add
Also, alles was du per LParam übergibst, hast du somit auch in der Prozedur
und mußt es einfach nur zurückcasten.
(Wobei man hierbei auch mal den Prozedurrumpf anpassen könnte, so wie es in der Demo gemacht wurde
Sowas wie
Form1.ListView1 verursacht nur mehr Verwirrung und erzeugt fehleranfälligeren Code.
PS: Boolean (1 Byte) <> BOOL (4 Byte)