Componente Edit Visible = true não é encontrado

18/02/2013

0

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

Responder

Posts

18/02/2013

Wilton Júnior

Ola, boa tarde,
Esse código esta em que evento de qual componente?
Responder

18/02/2013

Rafael Brendolan

if Edit1.Visible = True then
Edit1.SetFocus;

Teste antes se o Visible está True.
Responder

18/02/2013

Antonio Jesus

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


Responder

19/02/2013

Rafael Brendolan

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.
Responder

19/02/2013

Antonio Jesus

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;
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar