Fórum Foco em componente ativo #262465
17/12/2004
0
Olá programadores.
Como posso mandar o foco para o componente ativo.
Exemplo:
Edit1, Edit2, Edit3.
Tenho um por padrao o foco para Edit1, mas em certas situações ele esta desativado. como mandar o foco para o edit ativo.?
Como posso mandar o foco para o componente ativo.
Exemplo:
Edit1, Edit2, Edit3.
Tenho um por padrao o foco para Edit1, mas em certas situações ele esta desativado. como mandar o foco para o edit ativo.?
Macario
Curtir tópico
+ 0
Responder
Posts
17/12/2004
Fórum Vini
Olá,
tente assim:
Faço as duas verificações porque não sei se o ´Boolean Short Circuit´ está ativado. Eu também guardo a referência do componente( comp ) para que não seja necessário executar 2 vezes a busca por ele na propriedade Components :wink:
Espero ter ajudado,
Vinicius;
tente assim:
var cont: Integer; comp: TComponent; begin for cont:= 0 to FormTal.ComponentCount - 1 do begin comp:= FormTal.Components[cont]; if ( comp is TEdit ) then if ( comp.Enabled ) then comp.setFocus(); end;
Faço as duas verificações porque não sei se o ´Boolean Short Circuit´ está ativado. Eu também guardo a referência do componente( comp ) para que não seja necessário executar 2 vezes a busca por ele na propriedade Components :wink:
Espero ter ajudado,
Vinicius;
Responder
Gostei + 0
17/12/2004
Tinorj
Este procedimento eu fiz só com TEdit, basta vc implementar o restante dos testes.
Nos eventos OnEnter e OnExit dos componentes vc aponta para esta rotina.
Nos eventos OnEnter e OnExit dos componentes vc aponta para esta rotina.
procedure TForm1.TestarFoco(Sender: TObject); function iif(Conditional: Boolean; CondTrue, CondFalse: Variant): Variant; begin if Conditional then Result := CondTrue else Result := CondFalse; end; var I: integer; begin for i := 0 to ComponentCount - 1 do if (Sender IS TEdit) then TEdit(Sender).Color := iif(Sender = ActiveControl, clMoneyGreen, clWindow); end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)