Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
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 23-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
si bueno,... la sintaxis que es correcta seria -> f := TfrmUnidadesPedidoVenta.Create(nil) o (self), el argumento es el parent form, me debi liar al escribirlo. Igualmente, si al comentarlo (donde lo creas y donde la usas, claro, si es solo donde la creas tendras una excepcion mas) te sigue saltando, es que el error no esta por alla.

Última edición por coso fecha: 23-07-2008 a las 15:16:26.
Responder Con Cita
  #2  
Antiguo 23-07-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 19
radge Va por buen camino
Cita:
Empezado por coso Ver Mensaje
si bueno,... la sintaxis que es correcta seria -> f := TfrmUnidadesPedidoVenta.Create(nil) o (self), me debi liar al escribirlo. Igualmente, si al comentarlo (donde lo creas y donde la usas, claro, si es solo donde la creas tendras una excepcion mas) te sigue saltando, es que el error no esta por alla.
Exacto creo que el error esta en otra parte , porque lo he comentado las 5 o 6 lineas donde lo creo , recibo los datos y lo destruyo y sigue saltando la excepción.

salu2 radge
Responder Con Cita
  #3  
Antiguo 23-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
X) pues tienes faena. saludos.
Responder Con Cita
  #4  
Antiguo 23-07-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 19
radge Va por buen camino
No si llevo más de 2 semanas con esto... pero es que no lo veo la verdad... me he trabado con ello.

gracias , radge
Responder Con Cita
  #5  
Antiguo 23-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
mira en el codigo inicial que pusiste, he encontrado errores de los que yo considero graves (la liberacion del string que luego usas, crear una form con un nombre de variable global, probablemente ya creada,...), por lo que, sin animo de despreciar, creo que pueden haber bastantes del mismo tipo por diferentes lugares del proyecto. Le pegaria una repasada general a todo entero teniendo en cuenta :
- no crear forms inecesarias : si solo se usan una vez, usar el autocreate (project->options). Si se han de usar varias a la vez de la misma clase (como por ejemplo seria un preview), entonces si usar el create de las forms.
- si se crean, en tiempo de ejecucion, tanto forms como otros objetos, destruirlos en la misma funcion desde donde se han llamado. Vamos, las ultimas lineas de la funcion tendrian que ser del tipo q.Free, f.Free,...(en teoria, si dentro de estas forms no creas nada en tiempo de ejecucion, no hace falta usar el free, pero no esta de mas)
- si se cargan datos, tener en cuenta que se liberen una vez usados. Si se sale de la funcion donde se ha creado y cargado, entonces usar una variable global del form directamente y en su create darles la memoria (a todos los que vayas a usar) y en el create del objeto, hacer create(self) , o sea vinculado a la form, y en el evento destroy liberar estos objetos (solo en el destroy). Asi mientras este creada la form tendras esos objetos a mano siempre.
- Lo que decia neftali, vigilar que los campos de tus query esten creados y correctamente escritos y llamados, y que se asignen valores de acuerdo a sus tipos.
- Y lo que te comente al principio: usar los breakpoints (F5) los watches (Ctrl+F5), F7,F8 , el call stack, y lo de comentar/descomentar.


Venga, haber si lo resuelves. Saludos

Última edición por coso fecha: 23-07-2008 a las 15:46:52.
Responder Con Cita
  #6  
Antiguo 23-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Otra manera es usando un administrador de memoria y ir haciendo f7s,f8s...en los momentos en los que se te carguen bloques de memoria exagerados y alla se queden, por alla tendrias el problema (siempre suponiendo q el error sea por agotamiento de memoria, claro)
Responder Con Cita
  #7  
Antiguo 23-07-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 19
radge Va por buen camino
Como variable global creo esta "CodiClient" que es una variable que arrastro de un combobox a distintos sitios dentro del mismo formulario.

Lo del auto-create forms solo tengo uno llamado "splash" lo que salta al inicio del programa , solo tengo ese.


El trozo este de codigo

Código Delphi [-] Application.CreateForm (TfrmUnidadesPedidoVenta, frmUnidadesPedidoVenta); frmUnidadesPedidoVenta.CarregaDades(Cantidad,UnitatsServidesBD); frmUnidadesPedidoVenta.ShowModal; varDades := frmUnidadesPedidoVenta.rebreDades; varUnitatsRestants := frmUnidadesPedidoVenta.rebreUnitatsRestants; frmUnidadesPedidoVenta.Free;



Código Delphi [-]
var
  frmUnidadesPedidoVenta: TfrmUnidadesPedidoVenta;
  unidades_restantes : integer ;
  FlagCheckSupervisado : string;
implementation

uses SupVision;

{$R *.DFM}

procedure TfrmUnidadesPedidoVenta.CarregaDades(var1,var2: integer);
begin
 UnitatsPedidoVenta := var1;
 UnitatsServidesBD := var2;
end;

function TfrmUnidadesPedidoVenta.rebreDades():String;
begin
  Result := edit1.Text;
end;

function TfrmUnidadesPedidoVenta.rebreUnitatsRestants(): string;
begin
   if (unidades_restantes = strtoint(edit1.text)) then
       FlagCheckSupervisado := 'S'
   else
       FlagCheckSupervisado := 'N';
   Result := FlagCheckSupervisado;
end;

procedure TfrmUnidadesPedidoVenta.ACTUALIZARClick(Sender: TObject);
begin

 if ( strtoint(edit1.text) = 0) then
        showmessage('No es posible añadir 0 unidades ')
 else if ( strtoint(edit1.text) > unidades_restantes) then
        showmessage('El número máximo permitido es ' + inttostr(unidades_restantes) + ' unidades ')
 else
         frmUnidadesPedidoVenta.Close;
end;

procedure TfrmUnidadesPedidoVenta.FormShow(Sender: TObject);
begin
  label3.Caption := inttostr(UnitatsPedidoVenta);
  label4.Caption := inttostr(UnitatsServidesBD);
  unidades_restantes := UnitatsPedidoVenta - UnitatsServidesBD;
  Label5.Caption := inttostr(unidades_restantes);
end;




procedure TfrmUnidadesPedidoVenta.edit1KeyPress(Sender: TObject;
  var Key: Char);
begin
  If Key = #13 then
  ACTUALIZAR.Click;
end;


end.
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
Error Raro sobre archivo "ntdll.dll" que no consigo encontrar el motivo AGAG4 Impresión 1 23-11-2007 07:11:17
localizar un registro vroa74 Conexión con bases de datos 3 17-08-2007 14:11:23
Localizar un registro alcides Varios 4 13-04-2007 20:17:27
Localizar datos con Firebird joanajj Firebird e Interbase 5 06-06-2006 00:11:42
RaveReport AccessViolation raugadel Impresión 0 03-11-2005 15:32:56


La franja horaria es GMT +2. Ahora son las 00:03:38.


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