Diziler ve Pointterlarla ilgili Bir Soru

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Diziler ve Pointterlarla ilgili Bir Soru

Mesaj gönderen delphist »

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
ertug
Üye
Mesajlar: 82
Kayıt: 10 Ara 2004 05:41

Mesaj gönderen ertug »

Merhaba,

(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;
Ertuğ Kaya
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

Cevabın için teşekkür ederim :)
Cevapla