Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 08-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
Cita:
Empezado por elrayo76 Ver Mensaje
Lo que intento es hacer algo como identificar a todos los componentes que sean del tipo ingreso de datos y cuando se ingresa a uno de ellos que se le cambie el color del fondo y cuando se salga se le ponga el color original.
Hola elrayo.

De este modo, cambiará el color del control que posee el foco y lo restaurará al perderlo siempre que el mismo posea la propiedad Color:
Código Delphi [-]
...
const
  WM_AFTER_CREATE = WM_USER + 300;

type
  TForm1 = class(TForm)
     .... 
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    FPrevFocusedCtrl : TWinControl;
    FPrevFocusedColor: TColor;
    FFocusedColor    : TColor;
    procedure WmAfterCreate(var Msg: TMessage); message WM_AFTER_CREATE;
    procedure ActiveCtrlChange(Sender: TObject) ;
  public
  end;

var
  Form1: TForm1;

implementation 

uses TypInfo;

procedure TForm1.WmAfterCreate(var Msg: TMessage);
begin
  Screen.OnActiveControlChange := ActiveCtrlChange;
  FPrevFocusedCtrl := Screen.ActiveControl;
  if Assigned(GetPropInfo(FPrevFocusedCtrl.ClassInfo,'Color')) then
  begin
    FPrevFocusedColor := TColor(GetOrdProp(Screen.ActiveControl,'Color'));
    SetOrdProp(Screen.ActiveControl, 'Color', FFocusedColor);
  end;
end;

procedure TForm1.ActiveCtrlChange(Sender: TObject);
begin
  if Assigned(GetPropInfo(FPrevFocusedCtrl.ClassInfo, 'Color')) then
    SetOrdProp(FPrevFocusedCtrl, 'Color', FPrevFocusedColor);
  if Assigned(GetPropInfo(Screen.ActiveControl.ClassInfo,'Color')) then
  begin
    FPrevFocusedColor:= TColor(GetOrdProp(Screen.ActiveControl,'Color'));
    SetOrdProp(Screen.ActiveControl, 'Color', FFocusedColor);
  end;
  FPrevFocusedCtrl:= Screen.ActiveControl;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ...
  FFocusedColor := clLime;
  PostMessage(Handle, WM_AFTER_CREATE, 0, 0);
end;

...

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

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Propiedad Locate dsa132132 OOP 20 12-12-2011 01:44:57
propiedad de un hilo kurono Varios 1 11-03-2009 02:46:51
acceder a un .dbf con ADO sidneyb Conexión con bases de datos 6 23-11-2007 23:07:14
[clases] No puedo acceder a propiedad protegida Ñuño Martínez PHP 8 11-01-2007 14:24:13
acceder a DBF (SQL) Demian Conexión con bases de datos 0 25-08-2004 21:47:56


La franja horaria es GMT +2. Ahora son las 09:47:27.


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