Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayudame con OnMouseMove (https://www.clubdelphi.com/foros/showthread.php?t=20248)

JANDREGUE 09-04-2005 17:11:45

Ayudame con OnMouseMove
 
Hola amigos

Lo que necesito es que cada vez que el mouse roce un componente pueda robarme el valor del Hint de este componente y mandarlo a un Label destinado, lo he hecho, pero colocandole a cada componete en el evento OnMouseMove un codigo como el siguiente: Label1.caption:=Edit1.Hint...por Ej.

Lo que quiero es poder hacer un proceso Unico que reconozca el componente rozado por el mouse y capture el Hint; con el fin de ahorrar codigo y no repetir tanto lo mismo puesto que podria aplicar el proceso al evento de un solo componente y heredarlo en los demás...

Espero haberme hecho entender....gracias por la atencion espero me colaboren. ;)

Lepe 09-04-2005 18:42:53

Código Delphi [-]
Application.OnHint := ventepaca;

procedure TForm1.ventepaca(Sender:Tobject);
begin
  Statusbar1.panels[0].simpletext := Hint;
end;

lo digo de memoria... igual me cuelo 3 pueblos, pero van los tiros por ahí.

byeee

Crandel 09-04-2005 20:07:15

LO que debes hacer es que todos llamen el mismo evento, despues debes analizar el Sender, que es un puntero al componente llamo al evento.
Podes ecribir algo asi:

Código:

  with Sender as TControl do
    Label1.Caption := Hint;

TControl es la clase del que derivan todos los componetes que tienen un Hint, asi que podes asociar cualquier componente que tenga Hint a este mismo evento (TButton, TEdit, etc).

Lo probe y funciona perfecto :D

Suerte

JANDREGUE 09-04-2005 20:48:20

Gracias Crandel
 
Gracias Crandel era Justo lo que necesitaba....

Oye tu no sabes por ue los ComboBox no tienen OnMouseMove?

roman 09-04-2005 21:29:06

Cada vez que el mouse pasa por un control se genera el evento OnHint del objeto Application por lo que, como indicó Lepe, es el lugar más adecuado para lo que deseas en lugar de utilizar el evento OnMouseMove que podrías requerir para otros menesteres.

// Saludos

Crandel 09-04-2005 21:41:24

Usar el evento OnHint, esta bien siempre y cuando quieras que se copia cuando se muetra el hint, con onMouseMove podes copiar el Hint aun cuando la propiedad ShowHint este en false. Depende de lo que necesites.

El tema de porque no aparece el evente OnMouseMove en el ComboBox, es simplemente porque no lo publicaron cuando hicieron el diseño del componente, porque no lo publicaron ... no lo se. :confused:

Pero podes solucionarlo facilmente diseñando un componente que derive de TCustomComboBox y lo publique.

Seria mejor que esto lo pongas en un hilo por separado porque es otra pregunta. :)

Suerte

roman 09-04-2005 21:47:56

Cita:

Empezado por Crandel
con onMouseMove podes copiar el Hint aun cuando la propiedad ShowHint este en false.

Lo mismo sucede con OnHint. Este evento se genera independientemente de la propiedad que mencionas. Dicha propiedad lo que controla es la aparición o no del rectángulo amarillo con el texto del hint cuando se pasa el mouse sobre el control.

// Saludos

JANDREGUE 09-04-2005 23:14:56

Como Usar OnHint
 
Como uso el OnHint

donde debo colocar
Application.OnHint := ventepaca; por ej

gracias..

roman 09-04-2005 23:26:52

No sé qué versión de Delphi uses. En las últimas puedes encontrar la componente TApplicationEvents en la pestaña "Additional". Bastará que uses su evento OnHint.

Si no dispones de esa componente entonces sólo tienes que declarar el procedimiento en tu formulario tal como lo describe lepe:

Código Delphi [-]
type
  TForm1 = class(TForm)
  private
    procedure VentePaAca(Sender: TObject);
  end;

implementarlo como dice lepe y la asignación la puedes hacer por ejemplo en el evento OnCreate del formulario.

// Saludos


La franja horaria es GMT +2. Ahora son las 10:13:16.

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