Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   no salir de campos (https://www.clubdelphi.com/foros/showthread.php?t=15902)

Mario1980 09-11-2004 11:06:03

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.

Lepe 09-11-2004 13:00:00

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

roman 09-11-2004 16:19:52

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


La franja horaria es GMT +2. Ahora son las 18:43:36.

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