Ver Mensaje Individual
  #1  
Antiguo 31-05-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Reputación: 0
Jere_84 cantidad desconocida en este momento
Exclamation Funcion para validar campos.

Buenas delfos, tengo esta función que hice hace unos días para validar los campos obligando al usuario a que los ingrese antes de hacer el Grabar. Lo que hago es pasar el form como parámetro, antes de esto configuro los edits que son obligatorios con el tag=1, en el caso de que sean null , tomo el caption del componente y los muestro en una función mensaje. El problema ocurre que muchas veces el recorrido de los componentes no es en el orden esperado y muestra el mensaje de un edit que esta mas bajo que otro. por ejemplo tengo dos edits con tag=1 primero esta Nombre y luego Apellido dejos los dos en blanco y el primero que muestra el mensaje es el de Apellido. El tab order de los componentes esta bien y ademas en la clase están declarados en el orden de los tabs. Digamos que no se que patrón utiliza para hacer el recorrido. ¿Alguna sugerencia?
Gracias por leerme.

Código Delphi [-]
function ValidarCampos(formulario: TForm): boolean;
var
  i, tamano:integer;
  campo: string;
begin
  ValidarCampos:= True;
  tamano := formulario.ComponentCount;
  for i:=0 to tamano - 1 do
  begin
    if (formulario.Components[i] is TJfDbEdit) then
    begin
      if TJfDbEdit(formulario.Components[i]).Tag = 1 then
        if TJfDbEdit(formulario.Components[i]).IsNull then
        begin
          campo:= TJfDbEdit(formulario.Components[i]).ILabel.Caption;
          Mensaje('El campo ' + pchar(campo) + ' es obligatorio.', 3, 0, 0, 0, 0);
          TJfDbEdit(formulario.Components[i]).SetFocus;
          ValidarCampos:= False;
          Exit;
        end;
    end;
  end;
end;
Responder Con Cita