Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-09-2010
riddick riddick is offline
Registrado
 
Registrado: sep 2010
Posts: 4
Poder: 0
riddick Va por buen camino
ScrollBox violacion de memoria

hola soy nuevo en el foro, tambien programando en delphi y me gustaria que alguien puediera ayudarme.
Estoy realizando una aplicacion donde necesito crear mucho botones en un scrollbox, el problema es que cuando creo demasiados botones marca error de memoria y quisiera ver si alguien sabe como arreglaro o tenga una solucion mi codigo es el siguiente

Código Delphi [-]
procedure TframeVentas.CrearBotonesProductos(var categoria:Integer);
Var
PosY:Integer;
PosX:Integer;
n:Integer;
i :Integer;
begin

         BorrarBtns(ScrollBoxProductos);
      if categoria=1 then
        begin
            lblProductos.Caption:=lblProductos.Caption+' DE ROPA';
        end
      else
        begin
            lblProductos.Caption:=lblProductos.Caption+' DE JOYERIA';
        end;
          CONEXIONES.conexion.IBQuery1.SQL.Clear;
          CONEXIONES.conexion.IBQuery1.SQL.Add('select idproductos,nombre_producto from productos where categorias_idcategorias='+inttostr(categoria)+' order by nombre_producto');
          CONEXIONES.conexion.IBQuery1.open;
          SetLength(BtProductos, CONEXIONES.conexion.IBQuery1.RecordCount) ;
          PosY:=0;
          PosX:=0;
          n:=1;
          while not CONEXIONES.conexion.IBQuery1.Eof do
          begin
              BtProductos[n]:=TButton.Create(self);
              with self.BtProductos[n] do
              begin
                  Caption:=CONEXIONES.conexion.IBQuery1.FieldByName('nombre_producto').AsString;
                  Parent:=ScrollBoxProductos;
                  Height:=61;
                  Top:=PosY;
                  Left:=PosX;
                  PosY:=PosY+Height+10;
                  Width:=77;
                  WordWrap:=true;
                  OnClick:=ClickBotonProductos;
                  Name:='btProducto'+IntToStr(n);
                  tag:=CONEXIONES.conexion.IBQuery1.FieldByName('idproductos').AsInteger;
                  Font.Name:='DefaultFontDialog1.Font.Name Times New Roman' ;
                  if n mod 4=0then
                  begin
                     PosX:=PosX+Width+10;
                     PosY:=0;
                  end;
              end;
                CONEXIONES.conexion.IBQuery1.Next;
                n:=n+1;
          end;
end;
procedure TframeVentas.BorrarBtns(ACtrl: TWinControl);
var
  i: Integer;
begin
  for i:= ComponentCount -1 downto 0 do
    if (Components[i].ClassType = TButton)and
      (TButton(Components[i]).Parent = ACtrl) then
       Components[i].Free;
end;

todo esto lo ejecuto desde un boton y antes de crearlo elimino el contenido del scrollbox para crera los nuevos botones espero alguien me ayude gracias

Última edición por Casimiro Notevi fecha: 18-09-2010 a las 12:01:37.
Responder Con Cita
 



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
violacion de direccion de memoria anubis Varios 3 09-05-2007 00:48:38
Violacion De Acceso elguille Varios 2 17-10-2005 16:32:56
Violacion de memoria cuando termina un procedure gatosoft OOP 2 07-04-2005 02:26:41
Violacion en FreeReport brandolin Impresión 0 27-08-2004 18:29:55
violacion en picklist !!! Lepe Varios 0 13-09-2003 18:22:12


La franja horaria es GMT +2. Ahora son las 06:56:56.


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