PDA

Ver la Versión Completa : pintar los edits de un form


kapcomx
30-03-2012, 23:50:22
ke tal compañeros, una vez mas acudo a ustedes para pedir su ayuda, pues la situacion es esta:

1. Tengo en un form varios Tedit. la persona que lo usa me dijo que necesitaba que le resaltara el cuadro donde estaba actualmente por que se perdia. (en realidad no son tantos cuadros pero gente exagerada).

2. Me di a latarea de hacer en el evento onenter un cambio de color y en el evento on exit regresarlo al color original (esto Tedit por Tedit).. Lo cual me resulta bastante tardado.

3. el problema es que son como 6 formularios parecidos.

quisiera saber si existe una forma de hacerlo menos complicado...(bueno no es complicado mas bien talachudo y tardado).

tal vez si existiera algo como


formactual.componenteactivo.eventoonenter
begin
componenteactivo.color:=......
end;


de antemano les agradezco su atención

:cool:

ecfisa
31-03-2012, 01:36:16
Hola kapcomx.

Probá de este modo:

type
TForm1 = class(TForm)
...
private
FPrevCtrlFocused: TWinControl;
procedure ActiveCtrlChange(Sender: TObject) ;
public
end;

...

implementation

procedure TForm1.ActiveCtrlChange(Sender: TObject);
begin
if FPrevCtrlFocused is TEdit then
TEdit(FPrevCtrlFocused).Color:= clWindow;
if Screen.ActiveControl is TEdit then
begin
TEdit(Screen.ActiveControl).Color:= clMoneyGreen;
FPrevCtrlFocused:= ActiveControl;
end;
end;

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


Saludos.

kapcomx
02-04-2012, 23:49:54
Amigo Ecfisa, Perdon por no responder luego, probe la solución que me indicaste y funciono de maravilla. Gracias Por tu ayuda.

Saludos...:cool: