Componente q mude a cor fundo dos controles ao receber foco

Delphi

27/10/2005

É o seguinte pessoal, eu estou precisando de um componente que seja colocado no form principal do projeto e para este e todos os outros forms ele mude a cor de fundo dos controles (TEdit´s,TComboBox, TDBEdit´s ...) ao receber o foco.

Um amigo nosso aqui do Forum o Fernando Fernandes desenvolveu um, mas ele tava com um probleminha nos Forms MDI ai ele ficou de consertar, mas acho que ele ainda não deve ter tido tempo e eu stava precisando para por em um programa meu que já esta saindo do forno :lol:.

Seá que algum dos meus nobres companheiros conhece algum?


Daniel_mc

Daniel_mc

Curtidas 0

Respostas

Njuniorba

Njuniorba

27/10/2005

use os componentes do activedelphi, procura no google o site :P


GOSTEI 0
Daniel_mc

Daniel_mc

27/10/2005

Qual componente, pois dei uma olhada lá e não e não encontrei


GOSTEI 0
Renatacoimbra

Renatacoimbra

27/10/2005

olá !

vc pdoe usar esse código no seu forme, se vc estiver usando herança de Forms vc pode colocar só no form pai e blz.

Declare uma Variavel na Public do Form

private
    { Private declarations }
  public
    { Public declarations }
    CampoFoco: TComponent;

  end;  


Despois crie um método assim:

procedure TFrm_Main.ContoleFoco(Sender: TObject);
begin
    if Assigned(CampoFoco) then
      if CampoFoco.Tag >= 0 then
        TDBEdit(CampoFoco).Color := clWhite; // cor sem foco

    if (ActiveControl is TEdit) or
       (ActiveControl is TDBEdit) or
       (ActiveControl is TMaskEdit) or
       (ActiveControl is TDBCheckBox) or
       (ActiveControl is TComboBox) or
       (ActiveControl is TDBComboBox) or
       (ActiveControl is TRichEdit) or
       (ActiveControl is TDBRichEdit) then begin

    if ActiveControl.Tag >= 0 then
      TDBEdit(ActiveControl).Color := Cfg.GetCorEditComFoco; // cor com foco

    CampoFoco := ActiveControl;
    end;
    
end;


No FormActivate vc coloca:

Screen.OnActiveControlChange := ContoleFoco;


e no FormClose:

Screen.OnActiveControlChange := nil;


PS: nos controle que vc não quer mudar a cor ao receber o foco vc muda a Tag para -1 pode exemplo.

[/code]


GOSTEI 0
Daniel_mc

Daniel_mc

27/10/2005

Obrigado!

So estou quebrando a cabeça para colocar em todos os meus forms MDI


GOSTEI 0
POSTAR