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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Lo puse de esta forma :

Código Delphi [-]
case ventana_actual of
          1: begin
             NewBoton := TLabel.create(nil);
             Parent := FPrincipal.GroupBoxProd1;
             end;
          2: begin
             NewBoton := TLabel.create(nil);
             Parent := FPrincipal.GroupBoxProd2;
             end;
          3: begin
             NewBoton := TLabel.create(nil);
             Parent := FPrincipal.GroupBoxProd3;
             end;
          4: begin
             NewBoton := TLabel.create(nil);
             Parent := FPrincipal.GroupBoxProd4;
             end;
          end;
        with NewBoton do
        begin
        scontador:= IntToStr (contador);
        nombre:= 'Boton';
        Name := nombre+scontador;
        Color:= clMoneyGreen;
        Width := ancho_boton;
        Height := alto_boton;
        Left := margen_izq;
        Autosize := false;
        Top := margen_sup;
        Caption := varCaption;
        if soyingrediente <>1 then
             OnClick := mostrar_productos
        else
             OnClick := mostrar_productos;
        margen_izq_ant := margen_izq;
        margen_sup_ant := margen_sup;
      end; //fin del con hacer

Y al correr el ejecutable, manda una mensaje de error:
stack overflow

Y desaparece ese mensaje enseguida y no se abre el programa.
¿Sabes porque es esto?
Responder Con Cita
  #2  
Antiguo 07-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
ya vi, eso pasa cuando intento cambiar el with new boton, como tu me digiste de lugar.

Ahorita ya les puse nil a los TLabel en la creacion, el with new boton lo deje igual como lo tenia, no lo pude cambiar como tu me sugeriste.

Pero sigue el error
Responder Con Cita
  #3  
Antiguo 07-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Pues claro, fallo mio, perdona.

Código Delphi [-]
      case ventana_actual of
          1: begin
             NewBoton := TLabel.create(FPrincipal.GroupBoxProd1);
             Parent := FPrincipal.GroupBoxProd1;<<<<< aqui el error
             end;

Al cambiar el with NewBoton do, la linea marcada la interpreta de forma distinta, Ahora está intentando cambiar el padre a ¡¡ la ventana !!.

Al pasarlo abajo, hay que poner
Código Delphi [-]
    NewBoton.Parent := FPrincipal.GroupBoxProd1;
para todas las opciones del "case".

Para futuras veces Stack Overflow es que la pila de llamadas se ha desbordado, esto suele ocurrir en funciones que se llaman a sí mismas en un bucle infinito, o bien que se pase del límite establecido para la pila.

La verdad es que me desconcertó por unos segundos el tipo de error que daba .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 08-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Fijate que ya lo cambie, pero el error sigue

Lo deje asi:

Código Delphi [-]
          1: begin
             NewBoton := TLabel.create(nil);
             NewBoton.Parent := FPrincipal.GroupBoxProd1;
             end;

Pero los errores siguen apareciendo, y no veo donde este mi error. ¿No hay forma de ocultarlos?
Responder Con Cita
  #5  
Antiguo 08-04-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quiero hacer una aclaración en cuanto a los owners.

Ciertamente, el Owner de un Component es quien se encargará de destruirlo, pero no significa que sea su prerogativa exclusiva. Un Component, aun con dueño puede ser destruido explícitamente sin mayores problemas.

El destructor de TComponent hace esto:

Código Delphi [-]
if Owner <> nil then
  Owner.RemoveComponent(Self);

Básicamente, cuando una componente se destruye, repasa su lista de componentes (los que posee), destruyendo cada uno. El código de arriba muestra que al destruirse, una componente se quita ella misma de la lista de componentes de su dueño, rompiendo, por así decirlo, el contrato de propiedad. Cuando ese dueño eventualmente se destruya, no tendrá a la componente en su lista y por tanto no habrá ningún intento por destruir algo que ya no existe.

// Saludos
Responder Con Cita
  #6  
Antiguo 08-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
He puesto excepciones por todos lados, y no lo puedo ocultar, porque lo hace despues del ultimo end de la ejecucion, y espera que de nuevo presione o de un click en un label para volverlo a lanzar, pero no lo lanza siempre, por eso no puedo identificar cuando se lanza, es aleatorio.

Lo que yo quisiera seria que no los mostrara y que el sentido de mi programa siga como hasta hoy.

¿Se puede hacer esto?
Responder Con Cita
  #7  
Antiguo 08-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
Una pregunta, al correrlo paso a paso, me dice que el archivo:
ZAbstractRODDataset.pas no lo encuentra.

¿Si tiene esto algo que ver con mi problema?
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
Detener un error de access violation de la DbGrid - delphi..... uper Varios 1 21-09-2005 21:54:42
Error Access Violation en Paquetes (Packages) DarKraZY OOP 4 13-09-2005 14:35:31
Maldito ... Access violation Error (QuickReports) User_baja1 Impresión 1 20-04-2005 10:29:32
Error Access Violation samame Conexión con bases de datos 1 01-04-2004 10:48:10
Error Access Violation con Crystal 9 samame Impresión 0 30-03-2004 14:03:17


La franja horaria es GMT +2. Ahora son las 09:31:54.


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