Cita:
Empezado por Caroso
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