Tengo 1 formulario en Delphi en el que incluí 2 speed buttons y 2 labels. Quiero que interactúen.

Hola, mi consulta es la siguiente: tengo un formulario en el que incluí 2 speed buttons y 2 labels. Inicialmente los labels tendían su propiedad visible en false. Me gustaría hacer que cuando el puntero del mouse se ubique sobre el speed button1 se muestre el label1 y cuando el puntero salga de la zona del speed button1 se oculte ese label1. De manera análoga ocurriría con speed button2 y label2. Sería un evento similar al OnMouseOver/OnMouseOut de html, ¿no?. Espero su respuesta. Gracias.

1 Respuesta

Respuesta
1
Tienes que controlar el evento onMouseMove.
En onMouseMove de cada botón hay que mostrar la etiqueta relacionada... por ejemplo:
procedure TForm1.SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Label1.Show;
end;
En el evento onMouseMove del formulario hay que ocultar todas las etiquetas.. por ejemplo:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
Label1.Hide;
Label2.Hide;
end;
Y por fin, cada evento onMouseMove del resto de objetos, hay que enviarlo al mismo evento onMouseMove del formulario. Esto ultimo se puede hacer de dos maneras:
1.- Seleccionando todo el resto de objetos a la vez, y buscando el evento FormMouseMove en la pestaña del evento OnMouseMove del Object Inspector. De esa manera las dos etiquetas se ocultaran al pasar el ratón por cualquier objeto que no sean los botones.
2.- Añadiendo una llamada al evento del formulario en cada evento onMouseMove de cada objeto. Por ejemplo, en el de la etiqueta:
procedure TForm1.Label2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
FormMouseMove(Sender,Shift,X,Y);
end;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas