Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Saber de que objeto viene cuando llega a otro (https://www.clubdelphi.com/foros/showthread.php?t=71207)

goduquez 07-12-2010 05:07:02

Saber de que objeto viene cuando llega a otro
 
Desearia saber que objeto tenia el foco cuando se pociciona en otro.
Es decir:
Si tengo X número de Teditx.text y hago click en Tedit1.text, como se donde estaba antes o de donde viene?

Saludos.

ecfisa 07-12-2010 09:07:52

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.


La franja horaria es GMT +2. Ahora son las 01:47:53.

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