Club Delphi  
    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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-05-2012
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
Ayuda para validar un Dato de Tipo Boleano en funcion

bien pues resulta que despues de que todo funcionaba de maravilla, ahora resulta que siempre
no funcion tratare de describir lo que paso en un form tengo un boton con la siguiente informacion, aqui el form se llama Fcobro
Código Delphi [-]
if GridResultado.SelectedRows.Count > 0 then
  begin
   CalculaImportes;
   with TFPago.Create(Self) do
    try
     ShowModal;
    finally
     FcobroOk:=Pago.result;//aqui es donde paso el valor de la variable result del form Fpago 
     Free;
     RealizaCobro;//este procedimiento valida si la variable Fcobro ok es verdadera 
con esta instruccion if (Fcobrook) then pero no funciona y cuando lo ejecuto resulta que la variable Pago.Result no trae nadad
    end;
  end;

en este resulta que lo unico que hago es esperar el resultado de una variable de tipo Boolean
de otro form en el que hago lo siguiente, este es el boton de aceptar en el segundo form de nombre Fpago
Código Delphi [-]
procedure TFPago.BtonAceptarClick(Sender: TObject);
begin
 if not (VerificaDatos) then
  begin
    Exit;
  end
 else
  begin
    close;
  end;   
end;


y esta es la funcion para validar los datos
Código Delphi [-]
function TFPago.VerificaDatos:Boolean;
var wpago,wcambio,wresultadoouble;
 Bverifica:Boolean;
begin
 Bverifica:=True;
 wpago:=TxtPago.Value;

 if TxtFolio.Value=0 then
  begin
   Application.MessageBox('Proporciona el numero de Folio del Recibo',PChar(Application.Title), MB_OK + MB_ICONERROR);
   TxtFolio.SetFocus;
   Bverifica := False;
   Exit;
  end;
 if TxtPago.Value=0 then
  begin
   Application.MessageBox('Proporciona la cantidad con la que se paga',PChar(Application.Title), MB_OK + MB_ICONERROR);
   TxtPago.SetFocus;
   Bverifica := False;
   Exit;
  end;
  if wpagothen
   begin
    Application.MessageBox('Con el importe Proporcionado con cubre el Total del Pago',PChar(Application.Title), MB_OK + MB_ICONERROR);
    TxtPago.SelectAll;
    TxtPago.SetFocus;
    Bverifica := False;
    Exit;
   end
  else
   begin
    wresultado:=wpago-Wtotal;
    TxtCambio.value:=wresultado;
   end;
   Result:=Bverifica;// aqui paso la variable a Result que es te tipo boolean y es publica.
end;


espero me puedan ayudar, de antemano muchas gracias, a resumidas cuentas
se pierde el valor de la variable result cuando la paso a FcobroOk.
Responder Con Cita
  #2  
Antiguo 05-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola microbiano.

El problema supongo (ya que no indicas el tipo de la variable FCobroOk) pasa por que FCobroOk es de tipo Boolean y la estas comparando con el valor devuelto por un form modal que es de tipo TModalResult.

Creo que deberías hacer:
Código Delphi [-]
...
  with TPago.Create(Self) do
  try
    ShowModal
  finally
    FCobroOk:= ModalResult = mrOk; // FCobroOk=True si ModalResult = mrOk 
    if FCobroOk then
    // mejor sería: if ModalResult = mrOk then ...
       ...
    Free
  end;
 ...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 05-05-2012 a las 05:58:01. Razón: agregar comentario
Responder Con Cita
  #3  
Antiguo 05-05-2012
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
hola ecfisa muchas gracias por responder mira la variable FCobroOk (del formulario cobro) es de tipo Boolean al igual que la variable Result del Formulario (Fpago); tratare de implementar lo que comentas.

saludos
Responder Con Cita
  #4  
Antiguo 05-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola microbiano.

Por lo que entiendo del código de BtonAceptarClick, sólo debe salir de FPagos cuando la función VerificaDatos da un resultado verdadero.

Entonces se me ocurre que en FPagos podrías hacer:
Código Delphi [-]
procedure TFPago.btnAceptarClick(Sender: TObject);
begin
  ModalResult:= Integer(VerificaDatos); 
  // Close;
end;
Si VerificaDatos es True implica que Integer(VerificaDatos) = 1, por lo tanto ModalResult = mrOk y sale de FPagos.
Si VerificaDatos es False implica que Integer(VerficaDatos) = 0, por lo tanto ModalResult = mrNone y queda en FPagos
Por último, si deseas que salga de FPago de todas formas, basta con agregar una línea llamando al método Close.

Y en el form que lo invocas:
Código Delphi [-]
  with TFPago.Create(Self) do
  try
    ShowModal
  finally
    if ModalResult = mrOk then // implica que VerificaDatos = True
     ...     
    Free
  end;

Saludos. ´
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 05-05-2012 a las 09:37:40. Razón: Agregar comentarios
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
Ayuda con tipo de Dato BLOB Mysql 4.1 JerS Conexión con bases de datos 2 03-12-2008 04:00:41
Elaborar Clase Para Validar Un Dato De Un Edit sdiaz1983 Varios 7 17-03-2008 16:16:36
Tipo de camp boleano (AsBoolean) Tecnic2 Conexión con bases de datos 1 13-10-2004 20:07:02
funcion que devuelve el tipo de dato de un variant samame OOP 3 08-07-2004 17:02:30
Funcion para validar IP Mauricio Correa Internet 7 01-10-2003 16:04:25


La franja horaria es GMT +2. Ahora son las 16:38:40.


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
Copyright 1996-2007 Club Delphi