Arkadaşlar...birbirine bağlı bir kaç döngüm var. Bu bağlı dönülerde bir tanesinde Seviye Buluyorum. Dinamik bir döngü olabilmes için o an oluşan table tamamındaki seviyeleri bir diziye atmak istiyorum ve dizideki her elemanı pointer değişkeni olarak atamak istiorum. Yol gösterirseniz sevinirim. seviyedn kastım aşağıdaki gibi bir durum ..
1
2
3
4
2
3
2
3
4
gibi......Cevaplarınız için şimdiden teşekkürler
Diziler ve Pointterlarla ilgili Bir Soru
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Merhaba,
(TList) veya dinamik dizin kullanabilirsiniz. Aşağıda bir (TList) örneği vereceğim.
Ertuğ Kaya
(TList) veya dinamik dizin kullanabilirsiniz. Aşağıda bir (TList) örneği vereceğim.
Kod: Tümünü seç
type
rItem = packed record
Seviye: Integer;
Pntr: Pointer;
end;
prItem = ^rItem; //"Record"un "Pointer"ı
...
var
aList: TList;
apItem: prItem;
d: Integer;
begin
aList := TList.Create; //listeyi yaratıyoruz.
New(apItem); { liste elemanının "Pointer"ı için gerekli hafıza alanını ayırıyoruz. (4 byte). }
apItem^.Seviye := 1;
//apItem^.Pntr := pointer; //buraya istediğiniz "Pointer"ı eşitleyin.
aList.Add(apItem); //apItem "pointer"ını listeye ekliyoruz.
{ Elemanlara erişmek için }
apItem := aList.Items[0];
ShowMessage(IntToStr(apItem^.Seviye));
{ Free etme faslı. Listedeki her eleman tek tek hafızadan temizlenmeli. }
d := 0;
while d < aList.Count do
begin
apItem := aList.Items[d];
Dispose(apItem); //apItem "Pointer"ı için ayrılan hafızayı serbest bırakıyoruz.
Inc(d);
end;
//ardından listenin kendisini yok ediyoruz.
aList.Free;
end;