 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
CtrlRs Profissional


Registrado: Domingo, 30 de Janeiro de 2005 Mensagens: 531
|
Enviada: Ter Jan 02, 2007 4:50 pm Assunto: Edit em foco, mas foco não visivel |
|
|
Olá amigos....
Estou com um problema... um determinado edit está em foco mas o foco não está visivel, eu posso digitar e os caracteres aparecem normalmente, porem o foco não aparece em nenhum momento.
Obs.: Isso não acontece sempre com um edit só, as vezes com um, as vezes com outro... ja aconteceu isso com voces?
desde ja agradeço. |
|
| Voltar ao Topo |
|
 |
pestana Colaborador

Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Qua Jan 03, 2007 12:06 pm Assunto: |
|
|
antes de passar para o edit que não recebe o foco, o que você fez anteriormente?, cliclou em um botão, ou saiu de um outro edit?, se você saiu de um edit tem linhas de código no evento OnExit?
detalhe mais para que eu posso te ajudar, isso é um erro comum basta ser manipulado corretamente para resolver esté problema. |
|
| Voltar ao Topo |
|
 |
weberdamasio Experiente


Registrado: Sábado, 19 de Julho de 2003 Mensagens: 420 Localização: Maringá - PR
|
Enviada: Qua Jan 03, 2007 4:57 pm Assunto: |
|
|
Já tive este problema.
Ao sair de um determinado campo eu dava um MessageBox ai o proximo campo ficava com o foco invisivel.
Não tentei resolver o problema, como eu estava com pressa apenas troquei o MessageBox por um MessageDlg. |
|
| Voltar ao Topo |
|
 |
pestana Colaborador

Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Qui Jan 04, 2007 12:27 am Assunto: |
|
|
weberdamasio, voce tem dois edits, no evento onExit do primeiro edit você tem um MessageBox, ao passar o controle para o segundo edit 'clicando nele', a caixa de dialogo será exibido e depois que você fecha a caixa de dialogo do MessageBox, o foco simplesmente se perde ficando invisivel, para resolver isso basta criar uma rotina que leva o foco para o segundo edit.
procedure TForm1.Edit1Exit(Sender: TObject);
var
Ctrl: TWinControl;
begin
MessageBox(handle, 'Mensagem...', 'Informação', mb_iconInformation + mb_Ok);
// cancela o foco e força novamente a entrada
Ctrl := ActiveControl; // pega o controle que tem o foco.
ActiveControl := nil; // cancela o foco.
PostMessage(TWinControl(Ctrl).Handle, WM_SETFOCUS, 0, 0); // envia uma mensagem ao controle que estavá com o foco forçando-o a receber o foco novamente.
TWinControl(Ctrl).SetFocus;
end;
para maiores informaçõe, consulte o arq. dtDelphi 2.7 - Dicas e Truque Delphi V 2.7 850 Dicas.
flw. |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|