Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-10-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 18
Ade Va por buen camino
Destruir Qrlabels creados en tiempo de ejecucion

Mi problema es q creo los label en tiempo de ejecucion, algo asi:
Código Delphi [-]
for i := 1 to NumCampos  do begin
      With TQRLabel.Create( Self ) do
      begin
          campo:=ObtienePalabra(QRLabelnew.caption, ',', i);
          longitud:= length(campo);
          Name       := 'QRLabel' + IntToStr(i);//'txPorc' + IntToStr(aListas[i]);
          AutoSize   := true;
          Font.Name  := 'Courier New';
          Font.Style := [fsBold];
          Height     := 17;
          Left       := nCol;
          Top        := 32;
          Width      := longitud;
          Caption    := campo;
          Parent     := ColumnHeaderBand1;
          nCol:= nCol+(longitud*7);
      end;
y cuando cierro el informe y vuelvo a realizar otro claro pues se duplica label1,label2, segun el nº d campos, y ahi me da error, me dice:
Cita:
A component named Qrlabel1 already exists
como puedo una vez cerrado el informe eliminar los qrlabel creados en tiempo de ejecucion??
he probado en el onclose del fom q alberga el quicrep, hay alguna manera de saber cuando se cerró?
Tambien he probado, en el boton donde llamo a QuickRep2.Preview, tras esto hacer:

Código Delphi [-]
     InformeProveedores2.QuickRep2.Preview;
     total:=InformeProveedores2.ComponentCount;
     totalbucle:= total-1;
          for i:=0 to  totalbucle do
         begin
             if InformeProveedores2.Components[i] is TQRLabel then
                begin
                showmessage(InformeProveedores2.Components[i].name);
               {TQRLabel(InformeProveedores2.Components[i]).Destroy; aqui es cuando falla, hay solo un Tqrlabel funciona, lo destruye, pero si hay mas me da error}
                end;
         end;
end;

el error:
raised exception class EListError whit message 'list index of boun(7)'
deciros q el 7 creo q es el valor de i en ese momento, es decir el elemento q deberia destruirse ( sino e suna coincidencia )

Saludos y espero me puedan ayudar



Saludos
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
cambiar tamaño y mover componentes creados en tiempo de ejecucion gulder API de Windows 4 18-11-2006 23:21:16
Acomodar QRLabels en tiempo de ejecucion rex Impresión 9 08-10-2006 00:02:22
Eventos en componentes creados en tiempo de ejecucion joumont OOP 3 27-12-2005 14:48:23
destruir objeto creado en tiempo de ejecucuión jaime cotino Varios 5 28-06-2005 20:45:36
Objetos creados en tiempo de ejecución Scocc OOP 4 13-06-2003 20:55:29


La franja horaria es GMT +2. Ahora son las 19:43:30.


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