Tarihe göre üst başlık ekleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Dostk
Üye
Mesajlar: 144
Kayıt: 22 Ağu 2015 12:21

Tarihe göre üst başlık ekleme

Mesaj gönderen Dostk »

Selamlar;

Databaseden tarihe göre verileri Listview de listeliyorum, daha sonra listelenen verilere üst başlık eklemek için alttaki kodları kullanıyorum;
Her bir başlık bir kez eklenecek, fakat bir türlü üst başlıkları istediğim gibi yerleştiremedim.

İki faklı döngü denemedim;
1. (for S := 0 to Items.Count - 1 do) listviewde baştan başlayıp sona kadar tüm başlıkları eklemiyor;
2. (for S := Items.Count - 1 downto 0 do) sondan başlayıp en başa gidiyor fakat başlıkları üste değil de alt ekliyor.

Bu konuda ne yapabilirim?

Listview örnek:
Üst başlık 1
Fort 12.12.2016
Reno 12.12.2016
Mercedes 12.12.2016
Üst başlık 2
Fort 17.12.2016
Reno 17.12.2016
Mercedes 17.12.2016

Kod: Tümünü seç

procedure TForm2.UstTarih(Sender: TObject);
var
  S: Integer;
begin
  with ListViewRL do
  begin
    // for S := 0 to Items.Count - 1 do
    for S := Items.Count - 1 downto 0 do
    begin
      RLTarihEkle(Items.Item[S].SubItems[7], Items[S].Index, ListViewRL);
    end;
  end;
end;

Kod: Tümünü seç

procedure TForm2.RLTarihEkle(TarihBul: String; RowNumber: Integer;
  ListView: TListView);
var
  I: Integer;
  LI: TListItem;
  BoolBulundu: Boolean;
begin
  with ListViewRL do
  begin
    if Items.Count > 0 then
    begin
      BoolBulundu := False;
      I := 0;
      while (I < Items.Count) And (Not BoolBulundu) do
      begin
        if Pos(TarihBul, Items[I].SubItems[2]) > 0 then
          BoolBulundu := True;
        Inc(I);
      end;
      if Not BoolBulundu then
      begin
        LI := ListViewRL.Items.Insert(RowNumber + 1);
        LI.Caption := 'Tarihi';
        LI.SubItems.Add(' ');
        LI.SubItems.Add(' ');
        LI.SubItems.Add(TarihBul); /// ÜST BAŞLIK
        LI.SubItems.Add(' ');
        LI.SubItems.Add(' ');
        LI.SubItems.Add(' ');
        LI.SubItems.Add(' ');
        LI.SubItems.Add(' ');
      end;
    end;
  end;
end;
m_yaprakci

Re: Tarihe göre üst başlık ekleme

Mesaj gönderen m_yaprakci »

Veritabanından listview'e aktarırken ekleseniz daha hayırlı olur bence.

örneğin;

Kod: Tümünü seç

var
var 
 Itm: TListItem;
 Col: TListColumn;
 tarih:string;
begin
 table.first;
 tarih:='';
 
 while not table.eof do  
   begin
   
  if tarih<>table1Tarih.asstring then
  begin 
   //kolon ekle
   Col := ListView1.Columns.Add;
   Col.Caption := table1Tarih.asstring;
   Col.Alignment := taLeftJustify;
   Col.Width := 140;
   //kolon ekle
  end;  
  
    //item ekle
     Itm := Listview1.Items.Add;
     Itm.Caption := table1Tarih.asstring;
     Itm.SubItems.Add(table1Tarih.asstring);
     table1.next;
      tarih:=table1Tarih.asstring;
     //item ekle
   end;//while
end;
aynı mantıkta kolon/item yerine item/subitem de yapabilirsiniz.

Hata varsa kusura bakmayın. Deneme imkanım olmadı.
Kullanıcı avatarı
Dostk
Üye
Mesajlar: 144
Kayıt: 22 Ağu 2015 12:21

Re: Tarihe göre üst başlık ekleme

Mesaj gönderen Dostk »

Teşekkür ederim; sizin kine benzer bir uygulama ile çözdüm..
Cevapla