Componente Edit Visible = true não é encontrado
18/02/2013
0
Desejaria saber como faço para que um componente não cause um erro
após oculta-lo e faze-lo visible novamente dentro de um botão?
Segue logo abaixo o código.
-------------------
Ed_nome.Visible := true;
LComboBox.Visible := false;
GrupBox_titulo.Caption := 'Digite a Descrição p/ Pesquisa';
LComboBox.Visible := true;
LComboBox.setfocus; //...nesta linha cauxa um erro poque o componete ainda nã está visivel
-------------------
Então, como faço para que isto não aconteça?
A quem puder ajudar, desde já meus agradecimentos.
ANT.CARLOS/SP
Antonio Jesus
Posts
18/02/2013
Wilton Júnior
Esse código esta em que evento de qual componente?
18/02/2013
Rafael Brendolan
Edit1.SetFocus;
Teste antes se o Visible está True.
18/02/2013
Antonio Jesus
Já fiz mais de mil teste e não é de hoje q estou correndo atrás desta resposta.
Os comp. são um Edit e outro Lcombox, q estão sobre postos.
Ao escolher uma opção deixo os dois comp. visible = false, dependendo da escolha ativo um dos dois, no caso quero ativar o combox para visible e passar o foco.
Quando passo o foco é gerado uma excessão dizendo que o com. não está visible mas o mesmo já está com true.
Já testei Lcombx.Refresh, Lcombx.Update ou Edit1.Refresh, Edit1..Update;
100+
ANT.CARLOS/SP
19/02/2013
Rafael Brendolan
Você está fazendo isso no OnCreate certo?
Faça isso no OnShow do Form.
Irá resolver seu problema.
Att.
19/02/2013
Antonio Jesus
Obrigado pela atenção.
Meu problema é com dois objetos um Edit e um Combox e estão sobrepostos e inicialmente visivel = false;
Msg erro: "O erro acontece aqui "Cannot focus a disabled or invible window"
Objeto: RadioGrupo
O formulário já está aberto
O único objeto q causa erro é "LComboBox_Turno" pois o Edit funciona normal.
Veja a rotina abaixo na integra.
procedure TFrm_PesqArm.Radg_OrdpesqClick(Sender: TObject);
begin
//=================================
Ed_nome.Visible := false;
LComboBox_Turno.Visible := false;
//=================================
CASE Radg_ordpesq.itemindex of
0: BEGIN
Ed_nome.clear;
Ed_nome.EditMask := '999;0; ';
GrupBox_titulo.Caption := 'Digite o Nº Armário p/ Pesquisa';
Sql_PesqArm.IndexFieldNames := 'Codarm';
Ed_nome.Visible := true;
Ed_Nome.setfocus;
END;
1: BEGIN
Ed_nome.clear;
Ed_nome.EditMask := '';
GrupBox_titulo.Caption := 'Digite o Nº Matricula p/ Pesquisa';
Sql_PesqArm.IndexFieldNames := 'NMatric';
Ed_nome.Visible := true;
Ed_Nome.setfocus;
END;
2: BEGIN
Ed_nome.clear;
Ed_nome.EditMask := '';
GrupBox_titulo.Caption := 'Digite o Nº Miola chave p/ Pesquisa';
Sql_PesqArm.IndexFieldNames := 'NMiolo';
Ed_nome.Visible := true;
Ed_Nome.setfocus;
END;
3: BEGIN
Ed_nome.clear;
Ed_nome.EditMask := '';
GrupBox_titulo.Caption := 'Digite o Nome funcionário p/ Pesquisa';
Sql_PesqArm.IndexFieldNames := 'Nomfunc';
Ed_nome.Visible := true;
Ed_Nome.setfocus;
END;
4: BEGIN
Ed_nome.clear;
Ed_nome.EditMask := '';
GrupBox_titulo.Caption := 'Digite o Turno p/ Pesquisa';
Sql_PesqArm.IndexFieldNames := 'codarm';
LComboBox_Turno.Visible := true;
Try
LComboBox_Turno.setfocus; <<<========== O erro acontece aqui "Cannot focus a disabled or invible window"
Except
End;
END;
END;
end;
Clique aqui para fazer login e interagir na Comunidade :)