Fórum Preciso de ajuda com o FocusControl !!!!!! #166154
24/06/2003
0
Caros colegas
Tenho um DBGrid ao qual faço uma verificação em uma determinada coluna. Se esta verificação não retornar o valor correto, preciso que force o foco no campo até a informação for digitada corretamente. Estou usando o código abaixo, mas o foco não volta para o campo e assim continua sua navegação. Lembrando que a mensagem é ativada mais o foco não posiciona corretamente. Vc têm idéia do por quê???
if DBGridTMPP.SelectedField = DtSrcTMPP.DataSet.FindField(´TMPTPE´) then
if ( ( DBGridTMPP.Fields[1].AsString <> ´A´ ) and
( DBGridTMPP.Fields[1].AsString <> ´C´ ) ) then
begin
Application.MessageBox(´Tipo Inválido!´, ´Informação´, mb_ok + mb_iconinformation);
[b:4b0b104f8b]DBGridTMPP.Fields[1].FocusControl;[/b:4b0b104f8b] end;
O código acima acasiona o seguinte erro: Cannot focus a disabled or invisible window.
Já usei isto :> [b:4b0b104f8b]DBGridTMPP.SelectedIndex := 1;[/b:4b0b104f8b]
Mas também não funcionou.
Obrigado pela atenção
Gonçalves
Tenho um DBGrid ao qual faço uma verificação em uma determinada coluna. Se esta verificação não retornar o valor correto, preciso que force o foco no campo até a informação for digitada corretamente. Estou usando o código abaixo, mas o foco não volta para o campo e assim continua sua navegação. Lembrando que a mensagem é ativada mais o foco não posiciona corretamente. Vc têm idéia do por quê???
if DBGridTMPP.SelectedField = DtSrcTMPP.DataSet.FindField(´TMPTPE´) then
if ( ( DBGridTMPP.Fields[1].AsString <> ´A´ ) and
( DBGridTMPP.Fields[1].AsString <> ´C´ ) ) then
begin
Application.MessageBox(´Tipo Inválido!´, ´Informação´, mb_ok + mb_iconinformation);
[b:4b0b104f8b]DBGridTMPP.Fields[1].FocusControl;[/b:4b0b104f8b] end;
O código acima acasiona o seguinte erro: Cannot focus a disabled or invisible window.
Já usei isto :> [b:4b0b104f8b]DBGridTMPP.SelectedIndex := 1;[/b:4b0b104f8b]
Mas também não funcionou.
Obrigado pela atenção
Gonçalves
Goncalves
Curtir tópico
+ 0
Responder
Posts
24/06/2003
Aroldo Zanela
Gonçalves,
Ao atribuir um valor para propriedade SelectedIndex de um componente dbGrid você posiciona o foco na celula (Semelhante ao método SetFocus). No entanto, como vc está fazendo o teste dentro do aninhamento de um if referente a propriedade SelectedField, parece-me que há um erro de lógica, ou seja, você não está mais sobre a coluna ´TMPTPE´ e portanto não há como fazer a atribuição para SelectedIndex.
Ao atribuir um valor para propriedade SelectedIndex de um componente dbGrid você posiciona o foco na celula (Semelhante ao método SetFocus). No entanto, como vc está fazendo o teste dentro do aninhamento de um if referente a propriedade SelectedField, parece-me que há um erro de lógica, ou seja, você não está mais sobre a coluna ´TMPTPE´ e portanto não há como fazer a atribuição para SelectedIndex.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)