Size yakın bir zamanda yayınlanacak Delphi kitabımdan kısa bir alıntı yaptım; umarım kitaptan buraya aktarırken hata yapmamışımdır:
Liste kutusu hazırlarken kullanılan ListBox kontrolünün Items adında ve TStrings tipinde bir kolleksiyonu bulunmaktadır. Liste kutusunda yer alacak seçenekler Items koleksiyonu ile belirlenmektedir. Object Inspector penceresinde Items özelliğine ait düğme tıklanırsa ekrana String list editör diyalog kutusu gelir. ListBox’ta yer almasını istediğiniz her bir seçeneği bu diyalog kutusunda ayrı bir satıra yazmanız gerekir.
Çalışma anında ListBox’ta seçilen seçeneğin sıra numarası ItemIndex özelliğinde saklanmaktadır. Liste kutusundaki seçeneklerin arasında dolaşıldıkça ItemIndex özelliğinin içeriği güncelleşir.
Seçilen seçeneğin sıra numarası yerine, seçeneğin kendisi ile ilgilenmek istiyorsanız Items koleksiyonundan yararlanmanız gerekir. Items koleksiyonu aracılığı ile ilgi¬lenmek istediğiniz seçeneğin sıra numarasını Items koleksiyonuna parametre olarak köşeli paran¬tezler içinde vermelisiniz. Bu işlemin nasıl yapıldığını aşağıda görebilirsiniz. ShowMessage(‘Seçilen seçenek :’ + ListBox1.Items[ListBox1.ItemIndex]);
Çalışma anında liste kutusuna seçenek eklemek için Add() metodundan yararlanılır. Aşağıda verilen bir satırlık kod ile ListBox1 nesnesine yeni bir seçenek dahil edilir. Add() metodu yerine aynı işleve sahip Append metodunu kullanabilirsiniz.
ListBox1.Items.Add('Bursaspor');
Kod yazarak liste kutusuna bir seferde birden fazla seçeneği eklemek istiyorsanız seçenek metninin sonuna #13 kodunu ekleyip SetText özelliğine parametre olarak vermeniz gerekir. Bu özelliğin nasıl kullanıldığını göstermek için aşağıda verdiğim kodu hazırladım. Bu yordam işletildiğinde liste kutusu 2 elemana sahip olur.
Söz konusu elemanı listenin istediğiniz bir yerine eklemek istiyorsanız Add() metodu yerine Insert() metodunu kullanmalısınız. Insert() metodu Add() metodundan farklı olarak 2 parametreye sahiptir
ListBox1.Items.Insert(Sira_no, eleman)
Items koleksiyonu gerçekte TStrings sınıfından türetilmiş bir nesnedir. Bu nedenle TStrings sınıfından yola çıkılararak hazırlanan koleksiyonun elemanlarını direk ListBox’a aktarabilirsiniz. Bu işlemin nasıl yapıldığını anlatmak için aşağıdaki kod yazarak Strings nesnesi hazırladım birkaç eleman ekledim.
procedure TForm1.FormClick(Sender: TObject); Var Liste :TStrings; begin Liste := TStringList.Create; Liste.Add('Fenerbahçe'); Liste.Add('Galatasaray'); Liste.Add('Beşiktaş'); Liste.Add('Trabzonspor'); end;
Bu şekilde TStrings nesnesi hazırlayıp eleman ekledikten sonra bu nesneyi herşeyi ile ListBox’ın Items özelliğine aktarmak için koda aşağıdaki gibi bir satır ekledim.
ListBox1.Items := Liste;
Bu satır sayesinde Strings nesnesinin bütün elemanları ListBox’ta yer almaya başlar. Strings nesnesinin içeriğini bu şekilde ListBox’a aktarmak yerine Assign metodunu aşağıdaki gibi kullanabilirsiniz.
Var Liste :TStrings; begin Liste := TStringList.Create; Liste.Add('Fenerbahçe'); Liste.Add('Galatasaray'); Liste.Add('Beşiktaş'); Liste.Add('Trabzonspor'); ListBox1.Items.Assign(Liste); end;
Bu işlemin tersini de yapmak mümkündür. Yani ListBox’ın içeriğini veya Strings tipindeki Items özelliğinin içeriğini TStrings nesnesine aktarabilirsiniz. Bu işlemi nasıl yaptığımı aşağıda görebilirsiniz.
Var Liste :TStrings; i : Integer; begin Liste := TStringList.Create; ListBox1.Items.Add('Fenerbahçe'); ListBox1.Items.Add('Galatasaray'); ListBox1.Items.Add('Beşiktaş'); ListBox1.Items.Add('Trabzonspor'); Liste := ListBox1.Items; for i:=0 To ListBox1.Count -1 Do ListBox2.Items.Add(Liste) ; end;
benimde bu konuda sorum olacak. Rad studio'da delphi ile basit bir uygulama yapacağım.listboxtaki ıtemleri checklistboxa aktarıcam lakin çalışmıyor.kodlar aşağıdaki gibidir.
procedure TForm7.Button2Click(Sender: TObject); var i,sayi:integer; begin for I := 0 to listbox1.ItemIndex -1 do begin checklistbox1.Items.Add(ListBox1.Items.Strings); end; end;
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.