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;