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 10-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 21
zvf Va por buen camino
Ya quite muchisimas lineas de codigo, para dejar solo la parte en donde se genera el error y ya la tengo, vean son 4 procedimientos con una tabla que tengo en una base de datos.

Me gustaria enviarles los procedimientos nuevamente para que puedan checar con menos lineas de codigo, para ver si me pueden ayudar a encontrar el error.

Solo que veo que este hilo ya tiene muchas consultas, ¿podrian borrarlas para empezar de nuevo?
Responder Con Cita
  #2  
Antiguo 11-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 21
zvf Va por buen camino
Bien, el codigo que ahora tengo es el siguiente:

Tengo una tabla de una base de datos llamada categorias, esta tabla guarda lo siguiente:

Es un conjunto de categorias por ejemplo tengo:

Lacteos y dentro de lacteos tengo yogurth y leche.
En otra categoria tengo Carnes frias y dentro de ella tengo jamon y salchichas, de tal manera que la tabla para conocer los descendientes de cada categoria es la siguiente:

cat_nivel : guarda el nivel de la categoria (Lacteos es nivel 1 y sus descendientes son nivel 2 y asi consecutivamente cada nivel)

cat_codigo: para cada nivel, cada categoria tiene un codigo para identificarla, lacteos tiene el codigo 1(nivel 1), carnes frias codigo 2(nivel1), leche codigo 1(nivel2), yogurth codigo 2(nivel2), etc...

cat_padre: guarda el codigo del la categoria de la cual son descendientes, por ejemplo el padre de yogurth y leche es el numero 1, que pertenece a la categoria Lacteos.

cat_descripcion : guarda el nombre de la categoria, por ejemplo Lacteos.

Bien, a cotinuacion pondre cada uno de los 4 procedimientos que mando llamar:
Responder Con Cita
  #3  
Antiguo 11-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 21
zvf Va por buen camino
El procedimiento para crear los botones es el siguiente:
Código Delphi [-]
Procedure TFPrincipal.CreaBoton;
  var NewBoton : TLabel;
      nombre : string;
      scontador:string;
   begin
       if (band = 0) then  //PRIMER BOTON QUE CREA
               begin
               margen_izq := margen_izq_ini;
               margen_sup := margen_sup_ini;
               band := 1;
               end
        else
               begin
                margen_izq := margen_izq_ant;
                margen_sup := margen_sup_ant + alto_boton + margen_sup_ini;
                if (margen_sup > margen_inf) then
                    begin
                     margen_izq := margen_izq + margen_izq_ini;
                     margen_izq := margen_izq + ancho_boton;
                     margen_sup := margen_sup_ini;
                    end;
               end;
     with NewBoton do
        begin
        NewBoton := TLabel.create(FPrincipal.GroupBoxProd1);
        Parent := FPrincipal.GroupBoxProd1;
        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;
        OnClick := mostrar_productos;
        margen_izq_ant := margen_izq;
        margen_sup_ant := margen_sup;
      end; //fin del con hacer
  end;
//////  FIN DEL PROCEDIMIENTO CREAR UN BOTON EN TIEMPO DE EJECUCION   /////////
Responder Con Cita
  #4  
Antiguo 11-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 21
zvf Va por buen camino
El procedimiento para destruirlo es :
Código Delphi [-]
procedure TFPrincipal.DestruirBotones;
  var i, botonesCreados:integer;
begin
  botonesCreados:=FPrincipal.GroupBoxProd1.ControlCount;
 for i:=botonesCreados-1 downto 0 do
       begin
       FPrincipal.GroupBoxProd1.Controls[i].Free;
       end;
 inicializa;
end;
Responder Con Cita
  #5  
Antiguo 11-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 21
zvf Va por buen camino
El procedimiento siguiente, se manda llamar al dar click en un tlabel:

Código Delphi [-]
procedure TFPrincipal.mostrar_productos(sender : TObject);
var consulta,seleccionado : string;
    avanza,pos : integer;
begin
   pos:= -1;
   seleccionado:=(Sender as TLabel).Caption;
   // busca el seleccionado en el arr_descripciones, ya que lo encuentra ve el cod. en arr_codigos
   avanza :=0;
   while avanza < pos_descripciones do
    begin
     if arr_descripciones[avanza] = seleccionado then
       begin
         pos := avanza;
         avanza := pos_descripciones;
       end;
     avanza := avanza+1;
    end;
    nivel := nivel+1;
    padre := strtoint(arr_codigos[pos]);
    mostrar_productos1;
end;
Responder Con Cita
  #6  
Antiguo 11-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 21
zvf Va por buen camino
El procedimiento mostrar_productos1 es el que destruye los label existentes y crea nuevos con las categorias, ya dandole un nivel y un padre:

Código Delphi [-]
procedure TFPrincipal.mostrar_productos1;
var  avanza: integer;
     snivel,spadre,sclasif, consulta : string;
begin
       snivel := IntToStr (nivel);
       spadre := IntToStr (padre);
      //CONSULTA EN CATEGORIAS
      ZQNueva.SQL.Clear;
      consulta := 'SELECT `cat_descripcion`, `cat_codigo` FROM `categorias` WHERE `cat_nivel`= '+ #39 +  snivel + #39 +' and `cat_padre`= '+ #39 +  spadre + #39 +';';
      ZQNueva.SQL.Add(consulta);
      ZQNueva.Open;
      if ZQNueva.RecordCount > 0 then
      begin
       pos_descripciones :=0;
       for avanza:=0 to 99 do
           BEGIN
           arr_descripciones[avanza]:='';
           arr_codigos[avanza]:='';
           END;
       while not ZQNueva.Eof do
       begin
        arr_descripciones[pos_descripciones]:= ZQNueva.Fields[0].AsString;
        arr_codigos [pos_descripciones]:= ZQNueva.Fields[1].AsString;
        pos_descripciones := pos_descripciones +1;
        ZQNueva.Next;
       end;
       DestruirBotones;
       for avanza:=0 to pos_descripciones-1 do
         begin
         Contador := Contador+1;
         varCaption:= arr_descripciones[avanza];
         CreaBoton;
         end;
     end
     else
       begin
       nivel := nivel-1;
       showMessage ('Categoria vacia');
       end;
end;
///////FIN DEL PROCEDIMIENTO MOSTRAR PRODUCTOS1  /////////////////////////////
Responder Con Cita
  #7  
Antiguo 11-04-2006
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 21
zvf Va por buen camino
Si tienen tiempo, y lo checan, si ven algo extraño me dicen por favor.
Yo nose que es lo que pase, yo veo que el codigo esta bien, pero esos errores siguen apareciendo .

GRACIAS, DE ANTEMANO, GRACIAS POR SU COOPERACION Y AYUDA .
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 20:20:37.


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