Hi,
wie kann man möglichst elegant bei einem TSpeedbutton ein Mouseenter Event realisieren?
Ich wollte zuerst auf CM_MOUSEENTER reagieren, bloß ist das Dumme dadran, dass ich, um herauszufinden, um welches Objekt es sich handelt, dass die CM_MOUSEENTER abgefeuert hat, ich den Handle dieses Objektes brauche:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TFormMain.CMMouseEnter(var Message: TMessage); var ptWork : TPoint; i: integer; begin GetCursorPos(ptWork); for i := 1 to 9 do if WindowFromPoint(ptWork) = (FindComponent('b'+inttostr(i)) as TSpeedButton).Handle then begin if SoundOn then PlaySound(PChar(6),HInstance, snd_ASync or snd_Memory or snd_Resource); break; end; end; |
Und TSpeedbutton hat keinen Handle, warum eigentlich nicht?
Natürlich ohne zusätzliche Komponente.