ecfisa |
19-02-2014 17:39:08 |
Cita:
Empezado por Caroso
(Mensaje 472779)
hola amigos de club delphi...
les queria consultar si alguno me podría decir como cambiar el puntero (del mouse) al pasar sobre un boton, pero hacerlo con la API de windows...
|
Hola Caroso.
Cuando cambiar el cursor de un TButton es tán simple como asignar un valor en su propiedad Cursor, no logro entender en que situación podrías precisar de ese recurso.
Se me ocurre que quizá quisieras que el TButton pudiera tomar mas de un cursor (de acuerdo a alguna condicion) cuando pase el puntero sobre él, pero aún así no veo la ventaja de hacerlo con la API de Windows. Podrías hacer algo parecido a este código:
Código Delphi [-]
...
type
TButton = class(StdCtrls.TButton)
procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
private
public
end;
...
implementation
var
unaCondicion: Integer = 0;
procedure TButton.CMMouseEnter(var Msg: TMessage);
begin
unaCondicion:= Random(22)*-1;
Cursor:= unaCondicion;
end;
procedure TButton.CMMouseLeave(var Msg: TMessage);
begin
Cursor:= crDefault
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
end;
Creo que a partir de Delphi 2007 o 2009 los eventos OnMouseEnter y OnMouseLeave están publicados (accesibles desde el Object Inspector).
Saludos :)
|