Componente Edit Visible = true não é encontrado
Olá boa tarde!
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
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
Curtidas 0
Respostas
Wilton Júnior
18/02/2013
Ola, boa tarde,
Esse código esta em que evento de qual componente?
Esse código esta em que evento de qual componente?
GOSTEI 0
Rafael Brendolan
18/02/2013
if Edit1.Visible = True then
Edit1.SetFocus;
Teste antes se o Visible está True.
Edit1.SetFocus;
Teste antes se o Visible está True.
GOSTEI 0
Antonio Jesus
18/02/2013
Olá caro amigo!
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
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
GOSTEI 0
Rafael Brendolan
18/02/2013
Quando abre o Form você da Visible True e o Foco?
Você está fazendo isso no OnCreate certo?
Faça isso no OnShow do Form.
Irá resolver seu problema.
Att.
Você está fazendo isso no OnCreate certo?
Faça isso no OnShow do Form.
Irá resolver seu problema.
Att.
GOSTEI 0
Antonio Jesus
18/02/2013
Olá caro amigo!
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;
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;
GOSTEI 0