Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2004
Mario1980 Mario1980 is offline
Miembro
 
Registrado: oct 2004
Posts: 75
Poder: 20
Mario1980 Va por buen camino
Question no salir de campos

Hola, mi pregunta es ...
alguien sabe como hacer para no dejar salir al usuario de un campo (dbField, y campor de un dbgrid) si este no pone datos o los pone en forma incorrecta, es decir que al intentar salir haciendo click en otro lado o presionando tab no se valla del campo?
gracias.
Responder Con Cita
  #2  
Antiguo 09-11-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En el evento OnExit del control, haz las validaciones de nuevo y haz un Control.SetFocus, tambien deberías usar una Variable Booleana para que no pueda cerrar la ventana (OnCloseQuery).

Saludos
Responder Con Cita
  #3  
Antiguo 09-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
De hecho el evento OnExit no te servirá en el caso de un dbGrid ya que puedes moverte de celda sin salir del grid por lo que no se genera el evento OnExit.

Para este tipo de validaciones pienso que lo mejor es usar el evento OnValidate del campo. Si agregas los campos persistentes (menú contextual del dataset), seleccionas el campo en cuestión y asignas su evento OnValidate. En este evento verificas los datos y si algo está mal lanzas una excepción:

Código Delphi [-]
procedure TForm1.Table1UserValidate(Sender: TField);
begin
  if Sender.AsString = '' then
    raise Exception.Create('El campo está para almacenar datos así que ¡escriba un valor!');
end;

La ventaja es que la validación se lanzará en cualquier control que uses para acceder al campo, sea el grid, un dbedit u otro, impidiendo al usuario abandonar el control o celda. De esta forma no tienes que preocuparte de programar el evento OnExit para cada control que acceda al campo.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:59:30.


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
Copyright 1996-2007 Club Delphi