Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-05-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Este tipo de procedimientos tiene un fallo: Si el usuario no entra en ese Edit, no tendrá que salir, y por tanto, no se ejecuta el código.

Si no usas Bases de datos, lo mejor es que en el botón de Guardar Cambios, llames a un procedimiento que valide todas las posibles opciones:
Código Delphi [-]
function TForm1.ValidaTextos:Boolean
begin 
 Result := Trim(edplacas.text) <> EmptyStr;
 Result := Result and Trim(eddireccion.text) <> EmptyStr;
....

end;

procedure TForm1.Form1CloseQuery(.... var CanClose :Boolean);
begin 
  CanClose := ValidaTextos;
end;

Ya de camino he puesto la comprobación al cerrar el form, pero también deberías llamar a esa función antes de guardar los datos.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 11-05-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
hola nuevamente!

No se si sea correcto continuar aqui pero en caso contrario por favor le solicito a los moderadores que lo muevan.

Lepe, por el momento me "brinque" el procedimiento del OnExit del Edit asi que hago esto con el boton de guardar cambios:

Código Delphi [-]
//Capturamos el peso e insertamos los datos en la bd
procedure TMainFrm.btnPesarClick(Sender: TObject);
begin
  btnPesar.Enabled := False;
  g_iEntrada := 0;
  if  (g_strEstado = 'M') then
    showmessage('¡La Báscula tiene movimiento ESPERE!')
  else if (g_strEstado = 'U') then
    showmessage('¡EL PESO ES NEGATIVO!')
  else
    try
      begin
        lblPesoCap.Caption := g_strDatos;
        frmDatos.MDOEntrada.Append;
        frmDatos.MDOEntrada.FieldByName('FOLIO').Value := tmpFolio ;
        frmDatos.MDOEntrada.FieldByName('PLACAS').Value := edPlacas.Text ;
        frmDatos.MDOEntrada.FieldByName('CLIENTE').Value := dbCliente.Text ;
        frmDatos.MDOEntrada.FieldByName('PRODUCTO').Value := dbProducto.Text ;
        frmDatos.MDOEntrada.FieldByName('OPERADOR').Value := edOperador.Text ;
        frmDatos.MDOEntrada.FieldByName('PESO_ENT').Value := g_strDatos;
        frmDatos.MDOEntrada.FieldByName('HF_ENT').Value := Now;
        frmDatos.MDOEntrada.Post;
      end;
    except
    on E:Exception do
      begin
        ShowMessage('¡ERROR al actualizar la base de datos!');
      end;
  end;

en el OnValidate del TField PLACAS

Código Delphi [-]
procedure TfrmDatos.MDOEntradaPLACASValidate(Sender: TField);
var
  Query: TMDOSQL;
begin
  if Trim(MDOEntrada.FieldByName('PLACAS').AsString) <> '' then
  begin
    Query := TMDOSQL.Create(nil);
      try
        Query.Database := frmCnx.MDODatabase1 ;
        Query.Transaction := frmCnx.MDOTransaction3 ;
        Query.SQL.Text := 'SELECT Placas FROM ENTRADA WHERE Placas = :Valor';
        Query.ParamByName('Valor').Value :=
                                  MDOEntrada.FieldByName('PLACAS').AsString;
        query.ExecQuery ;
        try
          if Trim(Query.Fields[0].AsString) <> '' then
            begin
              showmessage('¡Estas Placas estan duplicadas!');
              Abort;
            end;
        finally
          query.Close ;
        end;
      finally
        query.Free;
      end;
  end
  else
  begin
    ShowMessage('El campo placas es necesario');
    Abort;
  end;
end;

los dos mensaje de advertencia me aparecen si el campo placas esta duplicado o vacio, sin embargo al llenar el edit que contiene ese valor y volver a ejecutar el procedimiento PesarClick la BD me regresa un error
de que el campo placas es null. No entiendo que esta pasando. Se agradece toda la ayuda.

EDITO: uso D7, MDO, FB2.0
Responder Con Cita
  #3  
Antiguo 11-05-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Otra cosa que se me ocurre hacer es desplazar forzosamente el foco (SelectNext(Self, True, True) al intentar retirarte, y manejar una bandera o disparar una error al validar el valor al retirar el foco.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 11-05-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
uuuufffff! Nuevamente aqui!

Gracias Federico por tu respuesta pero sinceramente no te entendi, podrias explicarmelo con manzanas y palitos? Nuevamente gracias.
Responder Con Cita
  #5  
Antiguo 11-05-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
En un hilo relacionado te he contestado.

No sé si te gustará aquel método que soluciona este problema también.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Evento 'OnExit' del Form Wellnic OOP 3 10-04-2007 19:08:51
Error en evento OnExit en TDBEdit halcon_rojo Varios 1 27-04-2006 23:17:19
Problemas con evento OnExit santi33a Varios 4 15-04-2006 13:30:50
Evento OnExit de un Edit Caro OOP 1 03-02-2006 17:57:01
OnExit DarioArg Varios 2 12-03-2005 02:34:55


La franja horaria es GMT +2. Ahora son las 23:48:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi