Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   FireMonkey (https://www.clubdelphi.com/foros/forumdisplay.php?f=50)
-   -   Link label firemonkey (https://www.clubdelphi.com/foros/showthread.php?t=91499)

juniorSoft 20-02-2017 04:21:59

Link label firemonkey
 
Hola amigos,

Aunque quizás sea algo simple no he dado con el funcionamiento en Firemonkey que un label al pasar el cursor del mouse se resalte y al salir vuelva a su estado normal, he intentado lo siguiente

procedure TForm1.Label1MouseEnter(Sender: TObject);
begin
with Label1 do
begin
FontColor := TAlphaColors.red;
Font.Style := Font.Style + [TFontStyle.fsUnderline];
end;
end;

procedure TForm1.Label1MouseLeave(Sender: TObject);
begin
with Label1 do
begin
FontColor := TAlphaColors.blue;
Font.Style := Font.Style - [TFontStyle.fsUnderline];
end;
end;

Luego como esto no me funciono he probado con el componente ColorAnimation al cual lo asigno al label y en su propieadad PropertyName le asigno FontColor y en sus respectivos StartValue y EndValue le asigno los colores al entrar y salir del control, pero tengo dudas en la propiedad trigger la cual he probado con los valores que da la lista pero ninguno me ha funcionado.

AgustinOrtu 20-02-2017 04:52:48

Hay dos cuestiones:

1. La propiedad HitTest de la clase TControl. Esta propiedad controla si el componente genera o no los eventos relacionados con el mouse. Para controles TLabel por defecto esta a False. Si pones un punto de ruptura en los bloques de codigo que publicaste vas a ver que tus eventos no se estaban ejecutando nunca

2. La propiedad StyledSettings. Esta es un poco mas complicada. Basicamente es un set (conjunto) de valores booleanos (banderas). Si la bandera esta a True, quiere decir que si modificas el aspecto del control usando las propiedaes (como en tu caso el color de la fuente) los cambios no seran reflejados; si la bandera esta a False, en ese caso los cambios si se reflejan

Te recomiendo que leas la documentacion:

FMX.Types.TStyledSetting este enumerativo define todos los posibles valores que se pueden activar o desactivar en una propiedad de tipo TStyledSettings

Using the StyledSettings property en donde la documentacion aclara mi ultimo parrafo

Tabla en donde se muestra la relacion entre cada bandera y la propiedad que es afectada

Para corregir tu codigo simplemente debes modificar estas dos propiedades de tu objeto TLabel

Código Delphi [-]
  Label1.HitTest := False;
  Label1.StyledSettings := Label1.StyledSettings - [TStyledSetting.FontColor];

Casimiro Notevi 20-02-2017 09:31:23

Cita:

Empezado por juniorSoft (Mensaje 513482)
Hola amigos

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

juniorSoft 20-02-2017 13:34:24

Excelente AgustinOrtu funciono a la perfección.

Pase por alto la propiedad HitTest en cuanto a la propiedad StyledSettings también hay que tenerla muy en cuenta para que funcione.

Gracias por tu ayuda,

Por otro lado he utilizado algunos de los componentes animations y creo que puede lograrse el efecto con ellos utilizando un colorAnimation aunque por esta via no me ha funcionado. En este link https://community.embarcadero.com/bl...key-components encontré algunos videos y veo que hay buena información.

Gracias por la corrección Casimiro Notevi, lo tomaré en cuenta.


La franja horaria es GMT +2. Ahora son las 18:36:40.

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