Supongo que la idea de roman es que uses estos eventos para dibujar tú mismo el borde cuando pasas el ratón y borrarlo cuando sales. Lo que pasa es que no es tan fácil porque el SpeedButton no publica la propiedad Canvas que es la que te permite dibujar.
Pero puedes modificar la componente en sí para dibujar el borde desde la misma componente:
Código:
procedure TMySpeedButton.CMMouseEnter(var Msg: TMessage);
var
R: TRect;
begin
if not (csDesigning in ComponentState) then
begin
R := ClientRect;
InflateRect(R, -1, -1);
Canvas.Pen.Color := clYellow;
Canvas.Pen.Width := 2;
Canvas.Rectangle(R);
end;
end;
procedure TMySpeedButton.CMMouseLeave(var Msg: TMessage);
begin
Refresh;
if Assigned(FOnMouseLeave) then FOnMouseLeave(Self);
end;
Bye