TControlList ist eine Klasse die Pointer zu allen Child-Control eines Formulars speichert.
Delphi-Quellcode:
function TControllist.Find(id: HMENU): Pointer;
var i: Integer;
begin
Result := nil;
for i := 0 to Count-1 do
if TNVCLControl(Items[i]).FID = id then
Result := Items[i];
end;
Man übergibt die ID des Controls und erhält den Pointer auf selbiges. Und da im LoWord des WParams der WM_COMMAND Message die ID des Controls gespeichert ist ...normalerweise.. kann ich so herausfinden auf welchen Control geklickt wurde und dann eben das OnClick Ereignis auslösen. Das hatte damals auch wunderbar geklappt als ich noch nicht diesen Dispatcher benutzt habe.
Frage: Warum wird versucht die Klasse zweimal zu registrieren wenn man sie im Constructor registriert? Und ich meine: Beim ersten Formular funktionierts ja.
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."