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); 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);
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