Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   redimension de array se pierde por bucle !!!!! (https://www.clubdelphi.com/foros/showthread.php?t=46387)

david_uh 31-07-2007 00:05:30

redimension de array se pierde por bucle !!!!!
 
tengo el siguiente codigo
Código Delphi [-]
i := 1;
        while not ZListas.Eof do                //
        begin
            cbo_Cliente.AddItem(ZListas['cliente'],
               pointer(ZListas.FieldByName('id').AsInteger));
            SetLength(arrDirecciones,i);
            arrDirecciones[i-1] := ZListas.FieldByName('Direccion').AsString;
            Inc(i);
            ZListas.Next;
        end;

for i := 1 to 1000 do
             begin
               Items.Add( IntToStr(i) );
               arrFact[i] := i;
             end;
tengo declarado como global el array arrDirecciones en el primer bucle ademas de asignar a un combo los nombres de los clientes guardoen el array sus direcciones

en el otro bucle for trabajo con elarray arrFact estático pero cuando este se ejecuta este for pasa que el primer array se queda sin elementos !!!!!!!! osea como a cero nulo como si no lo hubiese redimensionado.

alguna vez te paso esto? que estoy haciendo mal??? estoyenloqueciendo???

Enan0 31-07-2007 12:37:32

Hola David!! a ver si te puedo ayudar un poco.
La verdad que no veo porque te hace pero creo saber como optimizar un poquito tu codigo y talvez por aca venga el problema.

Lo que veo es que mientras que el la lista tenga datos siempre redimencionas el Array, te recomiendo esto!

antes del while

Código Delphi [-]
//estas Redimensionando el Array por unica vez
 If not zlistas.isempty then
     SetLength(arrDirecciones,zlistas.RecodCount);
i:=0;
While .......
....
....
arrDirecciones[i]:= .......
Inc(i);
Zlistas.next;
.....


Por ultimo Inmagino que el ArrDirecciones lo utilizas en algun otro lado.
estas seguro que no lo estas Limpiando, o Re direccionando en alguna otra llamada?

Saludos y suerte

david_uh 31-07-2007 17:39:28

si lo he hecho asi, lo que sucede es que en el combo de clientes muestro una lista de cada clientey como cad entrada crea un objeto en ese objeto almaceno su ID, ahora se me pide mostrar las direciciones de cada cliente al momento de seleccionar un cliente de la lista entonces para ello uso el array dinamico, lo he solucionado asignando esta direccion ya no a el aray sino a otra lista (listbox). la verdad no se por que pasa esto en ningun lugar estoy modificando las dimensiones del array, ya que el codigo se ejecuta enel create del form.

De todas formas gracias por tu respuesta


La franja horaria es GMT +2. Ahora son las 17:12:45.

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