Hab selbst nochmal rumprobiert und Doku gelesen.
Was ich nicht wusste ist, dass ich die Message für das Control extra angeben und verbreiten (broadcasten) muss!?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
msg : word;
begin
aButton := TButton.Create(StringGrid1);
aButton.OnMouseDown := Button1MouseDown;
aButton.Left := StringGrid1.ColWidths[1];
aButton.Top := StringGrid1.RowHeights[1];
aButton.Height := StringGrid1.RowHeights[1];
aButton.Width := StringGrid1.ColWidths[1];
aButton.Caption:= 'Drück mich';
StringGrid1.InsertControl(aButton);
StringGrid1.Controls[0].Parent := stringGrid1;
msg := WM_LBUTTONDOWN;
StringGrid1.Broadcast(msg);
end;
Das funktioniert einigermaßen. Mit dem Schönheitsfehler, dass bei Programmstart der Event immer aufgerufen wird und ich weiss nicht wie ich das abstellen kann.
Gruß
Stefan
PS. ich weiß dass ich den Post im falschen forum gemacht hab das gehört eher zur
VCL.. sorry.