Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Cambiar puntero al mouse al pasar sobre un boton (https://www.clubdelphi.com/foros/showthread.php?t=85233)

Caroso 18-02-2014 22:53:32

Cambiar puntero al mouse al pasar sobre un boton
 
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...
algo similar a lo que se trata en este hilo... pero para delphi

Desde ya muchas gracias

Casimiro Notevi 18-02-2014 23:58:45

Pues tal y como se explica en ese otro hilo :)

Caroso 19-02-2014 00:57:15

Sin solucion
 
alguien me podría ayudar de no ser molestia?¿

Casimiro Notevi 19-02-2014 01:20:33

Cita:

Empezado por Caroso (Mensaje 472788)
alguien me podría ayudar de no ser molestia?¿

Pues tal y como se explica en ese otro hilo :)

Caroso 19-02-2014 02:36:23

:(
 
alguien que sepa como lograrlo en DELPHI

Neftali [Germán.Estévez] 19-02-2014 08:58:28

A ver si esta entrada y la explicación te sirven.

De todas formas, recuerda que las funcione de la API, son las mismas independientemente del lenguaje desde el cual las llames.

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
  // A fin de ejemplo, asigno la supuesta condición y  
  // el correspondiente cursor de forma aleatoria
  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 :)

Casimiro Notevi 19-02-2014 17:43:46

Cita:

Empezado por ecfisa (Mensaje 472814)
... 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.

Sí que es raro :)

Neftali [Germán.Estévez] 19-02-2014 19:04:17

Cita:

Empezado por ecfisa (Mensaje 472814)
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.

Cierto, pensando en otras cosas nos hemos ido por las ramas... :o:o
hemos olvidado que los componentes ya poseen esa propiedad.

Casimiro Notevi 20-02-2014 00:14:06

Bueno, yo sí lo había tenido en cuenta, pero como Caroso dice:
Cita:

Empezado por Caroso (Mensaje 472779)
... pero hacerlo con la API de windows...

Pues eso.


La franja horaria es GMT +2. Ahora son las 14:45:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi