Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error en evento OnExit en TDBEdit (https://www.clubdelphi.com/foros/showthread.php?t=31097)

halcon_rojo 27-04-2006 21:14:45

Error en evento OnExit en TDBEdit
 
HOla a todos espero alguien pueda ayudarme con un problema que me vuelve loco. Tengo un form con varios TDBEdits, en el evento OnExit de un TDBEdit del formulario esta el sigte codigo:
Código Delphi [-]
procedure TMainForm.txtNitExit(Sender: TObject);
begin
    if not (dm.datos.compras.State = dsEdit) then
        chkIfExistC;
    //if not verificaDATO(txtNitv.Text) then
    //   ShowMessage('Dato Inválido.');
end;
que no funciona si habilito el código que se encuentra comentado, que es la llamada a la funcion verificaDATO() que ve el dato ingresado por el usuario y devuelve true o false, cuando devuelve true, el codigo funciona bien, pero si devuelve false, y se muestra el dialogo 'Dato Inválido' los TDBEdits el formulario se bloquean, es decir, no puedo digitar ninguna entrada y solo la tecla TAB parece funcionar.
Por si acaso debo mencionar que estos TDBEdit tienen el sigte codigo en el evento OnKeyPress:
Código Delphi [-]
procedure TMainForm.txtNroKeyPress(Sender: TObject; var Key: Char);
begin
    if(Key = #13) then
    begin
      Key := #0;
      Perform(WM_NEXTDLGCTL,0,0);
    end
    else
        Key := Tecla.Numeros(Key);
end;
que me valida que el usuario solo ingrese numeros en el campo.
Parece que este problema solo pasa cuando hago una advertencia con un Showmessage o un MessageDlg. Alguien podria ayudarme?

halcon_rojo 27-04-2006 23:17:19

usar setfocus?
 
hola yo de nuevo, no pude dar con la causa del problema pero una solucion fue aumentarle:
Código Delphi [-]
    if not verificaDATO(txtNitv.Text) then
    begin
       ShowMessage('Dato Inválido. ');
       MainForm.txtNitv.SetFocus;
    end;

pero como mi intencion no es la de obigar al usuario a poner un dato valido igual no soluciona mi problema, se me ocurrio pasarle el foco al siguiente TDBEdit y si funciona solo que esta ves el cursor desaparece!. What can I do?


La franja horaria es GMT +2. Ahora son las 16:34:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi