Componente Edit Visible = true não é encontrado

Delphi

18/02/2013

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

Antonio Jesus

Antonio Jesus

Curtidas 0

Respostas

Wilton Júnior

Wilton Júnior

18/02/2013

Ola, boa tarde,
Esse código esta em que evento de qual componente?
GOSTEI 0
Rafael Brendolan

Rafael Brendolan

18/02/2013

if Edit1.Visible = True then
Edit1.SetFocus;

Teste antes se o Visible está True.
GOSTEI 0
Antonio Jesus

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


GOSTEI 0
Rafael Brendolan

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.
GOSTEI 0
Antonio Jesus

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;
GOSTEI 0
POSTAR