Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 03-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 24
ArdiIIa Va por buen camino
Hola raquel:

Te propongo un método adaptando una rutina de Zarko Gajic en la que podrás ver a modo de ejemplo, como es posible el cambio de colores entre diferentes TEdit, que supongo que en tu caso serán TDBedit.

Adaptando este procedimiento podrías realizar el control que pretendes, sin embargo, he de comentarte, que a mi juicio esto coarta el modo de comportamiento de un programa, dado que si el objetivo es que el usuario vaya a un control específico, sin pasar por otro, o tras haber pasado por otro... ¿Que ocurre si desea volver al anterior ? En fin es tu programa el que ha de discernir cual es el control correcto en un momento determinado, aunque tal como comenta Lepe, creo que lo mejor es usar unas reglas de validación en cada control, y dejar el usuario que determine en que parte de la ventana quiere estar....

El código:


Código Delphi [-]

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure ScreenActiveControlChange(Sender: TObject) ;
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  lastFocused : TWinControl;

implementation

{$R *.dfm}

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

procedure TForm1.FormShow(Sender: TObject);
begin
Edit1.SetFocus;
Application.ProcessMessages;
TEdit(Screen.ActiveControl).Color := clBlue;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Screen.OnActiveControlChange := Nil;
end;

procedure TForm1.ScreenActiveControlChange(Sender: TObject) ;
var
   previousActiveControl : TWinControl;
Begin
if (Screen.ActiveControl = nil) and (Screen.ActiveControl is TEdit)  then
   begin
     lastFocused := nil;
     Exit;
   end;

   if lastFocused <> NIL then
   Begin
    previousActiveControl := lastFocused;
    TEdit(Screen.ActiveControl).Color := clBlue;
    TEdit(previousActiveControl).Color := clWindow;
   End;

   lastFocused := Screen.ActiveControl;

End;

Espero que te resulte útil.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mensaje - Evento... antes de perder el foco, es posible??? ariefez Varios 11 13-07-2007 23:28:21
Perder foco a cualquier otro programa de Windows gluglu Varios 1 21-04-2006 00:28:40
borrar al perder foco Cosgaya Varios 2 19-12-2005 23:31:19
...perder y ganar... Jure Humor 1 18-11-2004 14:26:14
problema con string grid (desparece el contenido de la celda al perder el foco) sase Varios 0 20-08-2003 18:37:59


La franja horaria es GMT +2. Ahora son las 02:49:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi