Ver Mensaje Individual
  #2  
Antiguo 07-12-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola goduquez.

Una forma es que se me ocurre es usar el evento OnActiveControlChange para almacenar el control que posee el foco.
Así podrías verificar de que control viene en el evento OnEnter de cada control. Para lo cuál uso un único procedimiento ControlEnter.

El código de ejemplo:
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    RadioButton1: TRadioButton;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure ControlEnter(Sender: TObject); // Asignar al evento OnEnter de cada control
  private
    FControl: TControl;
    procedure ActiveControlChange(Sender: TObject);
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Screen.OnActiveControlChange:= ActiveControlChange;
end;

{ Almacenar el control activo en FControl }
procedure TForm1.ActiveControlChange(Sender: TObject);
begin
   FControl:= Self.ActiveControl;
end;

{ Mostrar el nombre del control precedente }
procedure TForm1.ControlEnter(Sender: TObject);
begin
  if Assigned(FControl) then
    Caption:= 'Viene de ' + FControl.Name; 
end;
...

Saludos.

Última edición por ecfisa fecha: 07-12-2010 a las 09:15:50.
Responder Con Cita