Foco em componente ativo
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
Curtidas 0
Respostas
Fórum Vini
17/12/2004
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;
GOSTEI 0
Tinorj
17/12/2004
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;
GOSTEI 0