listbox a sayaç eklemek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Serhan01
Üye
Mesajlar: 27
Kayıt: 15 Nis 2014 02:02

listbox a sayaç eklemek

Mesaj gönderen Serhan01 »

arkadaşlar sizin gibi profesyoneller için basit bir soru ama benim gibi yeni başlayan için zor bir soru. forma bir listbox, edit ve butonlar koydum. butonların biriyle ekleme, biriyle listedeki tüm elamanları silme ve diğeriylede ikinci editten girilen sıra numarasındaki elemanı silme yapıyorum. ama burdaki problem şu; mesela listede 5 tane eleman var ve bunlar 1......,2.....,3... vd. şeklinde sıralanmışlar. ben resimde görüldüğü gibi 4. elemanı listeden sildiğimde listedeki 1,2,3 diye giden sayacın da bir eksilmesini isityorum. ama sadece aradaki eleman eksiliyor ve listedeki elemanların numaraları aynı kalıyorum. bu eksilmeyi nasıl yapabilirim?

Resim
PROGRAMADOR
Üye
Mesajlar: 239
Kayıt: 04 Oca 2008 01:53
Konum: Karşıyaka/İzmir

Re: listbox a sayaç eklemek

Mesaj gönderen PROGRAMADOR »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
  s:string;
begin
  ListBox1.DeleteSelected;
  for i := 0 to listbox1.Items.Count-1 do begin
    s:=listbox1.Items[i];
    delete(s,1,1);
    listbox1.Items[i]:=inttostr(i+1)+s;
  end;

end;
İyi çalışmalar.
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: listbox a sayaç eklemek

Mesaj gönderen xxxjedixxx »

Kod: Tümünü seç

procedure DelSelected(pListBox: TListBox);
var i: integer;
begin
  i := 0;
  with pListBox do
  while i <= Count - 1 do
  begin
    if Selected[i] then
    begin
      Items.Delete(i); Refresh; // Delphi 7'de Refresh gerekli, Count'u güncellemiyor
      if Count = 0 then Break;
      if i > Count - 1 then Dec(i);
      Selected[i] := True;
    end;
    Items[i] := InttoStr(i + 1) + '.' + Copy(Items[i], Pos('.', Items[i]) + 1, Length(Items[i]) - Pos('.', Items[i]));
    Inc(i);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DelSelected(ListBox1);
end;

Cevapla