Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   usar "Sender" con Labels (https://www.clubdelphi.com/foros/showthread.php?t=28830)

elcigarra 04-01-2006 01:17:00

usar "Sender" con Labels
 
Alguien sabe porqué no funciona o cómo hacer funcionar el siguiente código?
Código Delphi [-]
Procedure TForm1.Label1MouseMove(Sender:TObject);
begin
  if (Sender = Label1) then showmessage('Fue sobre Label1');
  if (Sender = Label2) then showmessage('Fue sobre Label2');
end;

Es decir: Entrar al procedimiento entra cuando muevo sobre uno de los dos labels, pero parece que luego de entrar al procedimiento la Variable "Sender" se olvida de us valor y no entra en ninguno de los "IF". ¿Alguien sabe porqué?

elcigarra 04-01-2006 01:19:00

Y otra ahora que me leo, porqué me pasa que cuando uso las etiquetas [delphi] la linea en la página me queda tan larga?...:eek:

lucasarts_18 04-01-2006 03:45:24

Cita:

Empezado por elcigarra
Y otra ahora que me leo, porqué me pasa que cuando uso las etiquetas [delphi] la linea en la página me queda tan larga?...:eek:

Trata de limpiar las cookies de tu navegador, así se arreglan algunos problemas, ya que la página está con algunos cambios y estos no se reflejan bien hasta después de hacer lo comentado...:cool:

Hasta Luego -

gluglu 04-01-2006 11:16:26

A mi me funciona correctamente el planteamiento que has hecho.

Lo que no sé exactamente para qué quieres tu procedimiento y por qué usas el evento OnMouseMove ? Yo utilizo OnMouseEnter y OnMouseLeave, que sólo ejecutarán tu código una vez. Con OnMouseMove, entiendo que con cada movimiento del ratón encima de tus label's se ejecutaría tu procedimiento.

Lo que también te tienes que asegurar es que en ambos label's has puesto correctamente la llamada a tu procedimiento en los respectivos eventos OnMouse... y que el nombre (propiedad 'name') que le has asignado a tus label's, ciertamente es 'Label1' y 'Label2'.

Saludos :)

Albano 04-01-2006 17:11:55

No entiendo muy bien
 
La verdad no entiendo muy bien de que se trata, pero creo que el error esta en que estas poniendo tu codigo en el evento "OnMouseMove" de una de tus etiquetas, el codigo no te funciona porque solo se ejecuta cuando el mouse se esta moviendo en la etiqueta 1, la opcion de OnEnter y OnLeave me parece bien para lo que creo que quieres.
DLB.

elcigarra 05-01-2006 00:36:02

Para que vean lo que puede sufrir un pobre programador al fin descubrí porqué no funcionaba en mi aplicación ya que cuando probaba en cualquier PC, como dijo el amigo gluglu funciona perfectamente.

El tema era que en otra parte de la aplicación (que no tenía nada que ver con esta) asignaba un valor al caption de un TLabel (suponte Label4) el cual iba a ser igual que el Label1 que nos ocupa. Para no escribir todo de nuevo, como corresponde a la sagrada ley del mínimo esfuerzo puse (o intenté poner): Label1.Caption := Label4.Caption

El tema es que había escrito: Label1 := Label4 (demasiado mínimo, el esfuerzo):( . El tema que al entrar al Label1 con el mouse yo creo que el pobre Label sufría una especie de ezquizofrenia perdiendo la identidad de sí mismo (yo lo entiendo, pobre, a mi me pasa a veces).

Al corregir esto funciona perfecto. Luego de este despilfarro inútil de horas (más de 3 en esto), me voy a ver la TV.:mad:

Gracias igual


La franja horaria es GMT +2. Ahora son las 23:04: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