Tema: Tab Order
Ver Mensaje Individual
  #3  
Antiguo 19-11-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
shoulder,

Cita:
Empezado por shoulder Ver Mensaje
quieren que cuando con la tecla tab se vayan moviendo por cada tecla la misma cambie de color porque no quieren usar tanto el mouse y no se dan cuenta donde se van posicionando...
Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Memo1: TMemo;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure ActiveControlChanged(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Evento de Control del Focus sobre el Form1 por medio de la Matriz de Controles
procedure TForm1.ActiveControlChanged(Sender: TObject);
var
  I: Integer;
begin
  for I:= 0 to ControlCount -1 do
  begin
    TEdit(Controls[i]).Color := clWindow;
    TMemo(Controls[i]).Color := clWindow;
    if (Controls[i] is TEdit) and (Controls[i] as TEdit).Focused then
        TEdit(Controls[i]).Color := clYellow;
    if (Controls[i] is TMemo) and (Controls[i] as TMemo).Focused then
        TMemo(Controls[i]).Color := clYellow;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   // Activa el Evento de Control de Focus en el Form1
   Screen.OnActiveControlChange := ActiveControlChanged;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  // Desactiva el Evento de Control de Focus en el Form1
  Screen.OnActiveControlChange := nil;
end;

end.
En el código anterior se resaltan los controles de entrada del formulario al momento de obtener el focus por medio de la propiedad OnActiveControlChange, lo cual incluye la tecla Tab, además al usar controles BitBtn con imágenes distintivas se destacan unos de otros y es más fácil determinar visualmente cual BitBtn tiene el focus activo en un momento dado.

En el link anexo esta implementado el código anterior.

El link es : http://terawiki.clubdelphi.com/Delph...trolChange.rar

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 19-11-2012 a las 19:34:23.
Responder Con Cita