Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Capturar eventos de componentes (https://www.clubdelphi.com/foros/showthread.php?t=1413)

vichovi 13-06-2003 14:40:42

Capturar eventos de componentes
 
Hola a todos:

A ver se me podeis echar una mano:

Quisiera haer un componente (descendiente del TEdit) al cual se le pudiera asignar un color cuando recibe el foco y otro cuando lo pierde.

¿Como puedo hacer para capturar el evento OnExit y OnEnter?

(Creo haber leido en el foro un post similar pero llevo toda la mañana buscando y no doy con el :confused:. Si ya ha sido respondido podriais decirme donde??)

Un saludo. Y gracias por todo.

roman 13-06-2003 16:14:58

Puedes capturar los mensajes CM_EXIT y CM_ENTER:

Código:

type
  TForm1 = class(TForm)
    procedure CMEnter(var Msg: TMessage); message CM_ENTER;
    procedure CMLeave(var Msg: TMessage); message CM_LEAVE;
  end;

implementation

procedure TForm1.CMEnter(var Msg: TMessage);
begin
  inherited;

  { tu código }

end;

procedure TForm1.CMLeave(var Msg: TMessage);
begin
  inherited;

  { tu código }

end;

end.

// Saludos

vichovi 13-06-2003 17:43:16

De lujo Roman, muchisimas gracias.

__marcsc 13-06-2003 19:01:33

Hola,

aunque no lo he probado, también podrías intentarlo haciendo un override de los métodos dinámicos protegidos DoEnter y DoExit, definidos en la clase TWinControl o TWidgetControl (según sea VCL o CLX). La implementación te queda casi igual que la que te proponen:

Código:


type
  TForm1 = class(TForm)
    procedure DoEnter; override;
    procedure DoExit; override;
  end;

implementation

procedure TForm1.DoEnter;
begin
  inherited;

  { tu código }

end;

procedure TForm1.DoExit;
begin
  inherited;

  { tu código }

end;

end.

Aunqué quizás sea un poco más fácil y además sería compatible con componentes CLX, cosa que no ocurriría con la otra implementación que te proponen.

Saludos.


La franja horaria es GMT +2. Ahora son las 07:01:23.

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