Abort en Lazarus
#1
Escrito 27 diciembre 2010 - 08:11
A y felices fiestas.
#2
Escrito 27 diciembre 2010 - 08:45
Hola me presento mui nombre es Dani, una cuestion estoy empezando a usar Lazarus pero antes me gusta probarlo bien antes de lanzarme a escribir programas, bueno la cuestion es que utilizo bastante el abort en mis programas cuando un usuario introduce pr ejemplo un codigo mal comrpuebo que exista dicho codigo y si no es asi muestro un mesaje de error y aborto en el onvalidate del campo en cuestion, la cosa es que aun haciendo esto el foco pasa al siguiente control aun con el abort, esto en Delphi no pasa, alguna idea, graicas a todos.
A y felices fiestas.
Hola danluc bienvenido a delphiaccess sientete como en casa
Y si asignas el foco al campo donde haces la validación ?
Salud OS
#3
Escrito 28 diciembre 2010 - 12:27
... que utilizo bastante el abort en mis programas cuando un usuario introduce pr ejemplo un codigo mal comrpuebo que exista dicho codigo...
Tienes un pequeño problema. En PASCAL el uso de Abort está contraindicado. Es más, apostaría a que muchas veces obtienes resultados no deseados por utilizarlo. Recuerda que la programación en PASCAL se basa en funciones y procedimientos, que es altamente estructurada y no requiere "originalidades" que rompan la lógica ni la secuencia de comandos.
Prueba a darnos un ejemplo de tu código y con gusto podemos ayudarte a hacerlo más eficiente.
#4
Escrito 30 diciembre 2010 - 04:06
procedure TForm1.Dbf1IDValidate(Sender: TField); begin if not Dbf2.Locate('Id', Sender.AsInteger, []) then begin // Aki busco el codigo MessageDlg('Atención codigo no encontrado', mtInformation [mbOk], 0); // Si no lo encuentra aviso abort; // Y aki Aborto para que no pase de este campo en Lazarus Lanza una Excepcion end; end;
#5
Escrito 11 enero 2011 - 08:46
procedure TForm1.Dbf1IDValidate(Sender: TField); begin if not Dbf2.Locate('Id', Sender.AsInteger, []) then begin // Aki busco el codigo MessageDlg('Atención codigo no encontrado', mtInformation [mbOk], 0); // Si no lo encuentra aviso Exit; end; end;