PDA

Ver la Versión Completa : Controles de un boton...


Tanix
29-05-2003, 15:37:25
Buenas a tod@s... mi pregunta es la siguiente: Alguien sabria como puedo controlar si estoy dentro o no de un control, es decir: Tengo un boton al que quiero que al pasar el raton por encima cambie de color, pero al salir de el vuelva al color original... He encontrado una solución cutre, ya que esta dentro de un panel, en el OnMouseMove del boton lo pongo de un color, y en el OnmouseMove del panel lo vulevo a cambiar, pero esto es bastante conflictivo... Me imagino que habra soluciones mas finas ;) ... Gracias de antemano por sus respuestas...

Delphi Man
29-05-2003, 17:25:41
Ante todo saludos

Bueno Tanix, el evento OnMouseMove esta precisamente para eso, asi que o no entiendo tu pregunta, o sería mejor ke explicases a ke te refieres con el tema de que es conflictivo.

delphi.com.ar
29-05-2003, 17:37:26
Podrías utilizar los mensajes, CM_MOUSEENTER y CM_MOUSELEAVE, este es un ejemplo un poco simplista:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;

type
TMyPannel = class(TPanel)
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
end;

TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
public
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

{ TMyPannel }

procedure TMyPannel.CMMouseEnter(var Message: TMessage);
begin
Color := clRed;
end;

procedure TMyPannel.CMMouseLeave(var Message: TMessage);
begin
Color := clBtnFace;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
With TMyPannel.Create( Self ) do
Parent := Self;
end;

end.

Tanix
02-06-2003, 01:29:24
En primer lugar darles las gracias por sus post. Decirte, Dalphi Man, que lo de conflictivo es por el hecho de que no se trata de una solucion con "estilo" lo que propongo. El hecho de que en el evento OnMouseMove del panel le cambie el color al boton digo que es "conflictivo" porque no siempre funciona, como por ejemplo si pasas el raton rapidamente por el boton...
Probare el codigo q me pones delphi.com.ar... Gracias... De todas formas para aclarar el mensaje deciros que lo que quiero hacer es lo que esta el en office, que cuando pasas el raton por un boton este cambia de color y forma... No se si con el codigo que esta es suficiente, aunque me huelo que es mas complejo que eso... Alguien sabe como hacerlo???... Gracias, y hasta pronto...

Delphi Man
02-06-2003, 02:06:56
Para lo ke kieres de los botones al estilo office, creo que te valen unos componentes llamados XPMenu. Hay varios post ke hablan sobre éstos. Un saludo

delphi.com.ar
02-06-2003, 17:50:09
Bien puedes buscar algunos componentes de terceros que hagan lo que tu quieres como propone Delphi Man, o puedes utilizar el código que te he pasado, que te aseguro funciona, y seguramente es lo que vas a encontrar en el código de lo que bajes de la web.

Saludos!

Tanix
03-06-2003, 10:56:08
Gracias a los dos... Y si, el codigo funciona... Saludos!!!