Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-03-2008
teclilla teclilla is offline
Miembro
 
Registrado: feb 2008
Posts: 41
Poder: 0
teclilla Va por buen camino
Error de CPU al visualizar un formulario

Hola amigos, estoy terminando una aplicacion en Delphi 5 sobre presupuestos y albaranes con base de datos en Paradox 7 y tengo un problema cuando el programa está en ejecucion.
La aplicación compila bien y ejecuta bien, cuando esta en uso los demas formularios funcionan bien, es decir, pulso en el boton de cliente y muestra el formulario correspondiente, etc. pero con el de presupuestos no es así, al pulsar el boton para que muestre el formulario de presupuestos me sale la ventana de CPU y se para.
El formulario se crea bien y completamente:
Código Delphi [-]
procedure TFormPresupuestos.FormCreate(Sender: TObject);
begin
        //abrimos tablas
        TPresupuestos.Open;
        TPresupuestos.First;
        ComprobarContrato;
        TCliente.Open;
        TProductos.Open;
        TPresProdDetalle.Open;
        PresupuestoBuscado:=-1;
        importes:=TPresupuestos.FieldByName('SumaTotal').asFloat;
        DBEditsLectura;
        SpeedButtonConfirmar.Visible:=false;
        SpeedButtonCancelar.Visible:=false;
end;
Alguien puede indicarme a que puede ser debido, muchas gracias de antemano.
P.D.: No sabia donde poner este nuevo tema.
Responder Con Cita
  #2  
Antiguo 27-03-2008
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Puedes dar mas de informacion sobre que realizar estos procedimientos?

ComprobarContrato;

DBEditsLectura;


Tienes algo de codigo en los eventos del las Tablas (BeforeOpen, AfterOpen,...)?

Saludos desde
Concepcion-Chile
Responder Con Cita
  #3  
Antiguo 28-03-2008
teclilla teclilla is offline
Miembro
 
Registrado: feb 2008
Posts: 41
Poder: 0
teclilla Va por buen camino
ComprobarContrato es llamado en Tpresupuestos en el evento AfterScroll y comprueba si para un presupuesto existe un contrato:
Código Delphi [-]
procedure TFormPresupuestos.ComprobarContrato;
begin
        if (TPresupuestosContrato.IsNull) then
           SpeedButtonContrato.Caption:='Hacer contrato'
           else SpeedButtonContrato.Caption:='Ver contrato';
end;

En el evento BeforeDelete de Tpresupuestos se realiza lo siguiente (borra cada linea de detelle del presupuesto de la tabla detalle (maestro/detalle):

Código Delphi [-]
QCanBorD.Params[0].AsInteger:=TPresupuestosIdpres.AsInteger;
        QCanBorD.ExecSQL;
        QCanBorD.Close;

Las demás tablas no tienen nada en los eventos.
Y DBEditsLectura pone campos para solo lectura:
Código Delphi [-]
procedure TFormPresupuestos.DBEditsLectura;
begin
        DBEditIdpre.ReadOnly:=true;
        DBEditFechaPre.ReadOnly:=true;
        DBEditLinst.ReadOnly:=true;
        DBEditSuma.ReadOnly:=true;
        DBMemoFp.ReadOnly:=true;
        DBMemoObs.ReadOnly:=true;
        EditCodigo.Text:='';
        EditNombre.Text:='';
        EditCantidad.Text:='';
        PanelProd.Enabled:=false;
        PanelCli.Enabled:=false;
        SpeedButtonAnaLProd.Enabled:=false;
        SpeedButtonQuiLProd.Enabled:=false;
end;

He puesto puntos de ruptura y el FormCreate lo realiza todo y se para justo en el end; danto error de CPU.
Alguna idea?
Muchisimas gracias por tu contestación, estoy atascada ahí.
GRACIAS.
Responder Con Cita
  #4  
Antiguo 28-03-2008
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
No logro detectar problemas a tu codigo.

Te aconsejo que deshabilites el codigo de ese formulario y lo vayas incorporando de a poco para asi detectar donde podria estar el problema.

En alguna ocacion me paso algo similar, esto se debia a que estaba usando algun objeto de un formulario que no habia sido creado.

Saludos desde
Concepcion-Chile
Responder Con Cita
  #5  
Antiguo 28-03-2008
Avatar de Black_Ocean
Black_Ocean Black_Ocean is offline
Miembro
 
Registrado: nov 2006
Posts: 128
Poder: 18
Black_Ocean Va por buen camino
Revisa esta parte
Código Delphi [-]
        PresupuestoBuscado:=-1;
        importes:=TPresupuestos.FieldByName('SumaTotal').asFloat;
        DBEditsLectura;
        SpeedButtonConfirmar.Visible:=false;
        SpeedButtonCancelar.Visible:=false;

AsFloat podría estar causando el error en la conversión. Pon un breakpoint en la línea PresupuestoBuscado:=-1; y tracea el código desde ahí hasta el final de la rutina presionando la tecla F7 y será más facil detectar el error y revisa la configuración de ese campo en la DB.

Saludos.

Última edición por Black_Ocean fecha: 28-03-2008 a las 19:51:07.
Responder Con Cita
  #6  
Antiguo 02-04-2008
teclilla teclilla is offline
Miembro
 
Registrado: feb 2008
Posts: 41
Poder: 0
teclilla Va por buen camino
Muchas gracias por tu contestación, he realizado lo que me has aconsejado y al ejecutar paso a paso no hay problema, realiza todas las instrucciones. SumaTotal es un campo tipo $(Money), pero esa instruccion, al parecer la realiza correctamente, de hecho termina todo el procedimiento hasta llegar al end y a la hora de visualizarlo es cuando falla y se para, pero si en ese momento le das dos veces mas al boton de ejecutar la aplicacion sigue y se ejecuta al completo. No se que puede pasar, he pensado que falla en algo de la visualizacion, igual tiene que ver con alguna biblioteca *.bpl o algo así, pero no tengo ni idea, ojala alguien tenga alguna inspiración.
Muchas gracias.
Teclilla.
Responder Con Cita
  #7  
Antiguo 04-04-2008
teclilla teclilla is offline
Miembro
 
Registrado: feb 2008
Posts: 41
Poder: 0
teclilla Va por buen camino
Al parecer tiene algo que ver con esto:

Delphi 5versusXP’s ntdll.DbgBreakPoint

la explicación está en la siguiente dirección:

http://home.att.net/~owen_labs/rant9.htm

pero no la entiendo, ya que soy bastante novata en el tema de programación, al parecer tiene que ver con el IDE.
Os agradeceria algun tipo de ayuda.
GRACIAS.



Responder Con Cita
  #8  
Antiguo 04-04-2008
teclilla teclilla is offline
Miembro
 
Registrado: feb 2008
Posts: 41
Poder: 0
teclilla Va por buen camino
Ya he averiguado porque era

Si alguien tiene esta duda, eh aquí la solucion:
la propiedad scaled del formulario que daba el error la tenia a false, igual la cambie sin darme cuenta, este fallo tonto me ha traido de cabeza.
Puse el punto de ruptura tal y como me dijiste y realizaba todo el procedimiento hasta el final, entonces a la hora de visualizar el formulario era cuando aparecia el error y se paraba y todo era por esta propiedad.

Gracias.
Responder Con Cita
Respuesta



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
Error al abrir un formulario narrolaso Impresión 3 04-04-2008 18:29:54
formulario con error Patricio Varios 6 24-09-2007 20:59:09
Problema al visualizar Formulario JuanchoArg Varios 1 11-12-2006 19:10:42
error al crear formulario didier OOP 2 23-12-2005 18:05:41
Error en Formulario Auxiliar jzk OOP 8 20-09-2004 20:58:33


La franja horaria es GMT +2. Ahora son las 01:45:31.


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