Autor Téma: listview - item - header  (Přečteno 97 krát)

Offline jumpdo

  • Nováček
  • *
  • Příspěvků: 13
  • Karma: 1
listview - item - header
« kdy: 05-10-2017, 14:37:27 »
Ahoj.

nezná někdo způsob jakým přečíst hodnotu text v listview item hlavičce ?

našel jsem tenhle případ pro zápis

https://community.embarcadero.com/blogs/entry/adding-headers-to-tlistview-programmatically


ale už jsem nedohledal z které vlastnosti hodnotu textu hlavičky itemu přečtu..

Díky...moc  ;D

Online Delfin

  • Plnoletý
  • ***
  • Příspěvků: 220
  • Karma: 6
    • Verze Delphi: 2009, Tokyo
Re:listview - item - header
« Odpověď #1 kdy: 05-10-2017, 15:10:39 »
Je to jen item v list view. Je jen rozlisen property Purpose. Pokud si tedy pamatujes index header itemu, cti z nej text jako z ostatnich polozek:

Kód: Delphi [Vybrat]
  1. var
  2.   S: string;
  3. begin
  4.   S := ListView1.Items[0].Text; // 0 je index polozky headeru
  5. end;

Muzes si samozrejme vyrobit metodu ktera ti vrati kolekci jen itemu jez maji nastaven Purpose na TListItemPurpose.Header. Napr.:

Kód: Delphi [Vybrat]
  1. uses
  2.   Generics.Collections;
  3.  
  4. type
  5.   TListViewHelper = class helper for TListView
  6.   public
  7.     function GetHeaders: TList<TListViewItem>;
  8.   end;
  9.  
  10. function TListViewHelper.GetHeaders: TList<TListViewItem>;
  11. var
  12.   Item: TListViewItem;
  13. begin
  14.   Result := TList<TListViewItem>.Create;
  15.   for Item in Self.Items do
  16.     if Item.Purpose = TListItemPurpose.Header then
  17.       Result.Add(Item);
  18. end;
  19.  
  20. procedure TForm1.Button1Click(Sender: TObject);
  21. var
  22.   Item: TListViewItem;
  23.   Headers: TList<TListViewItem>;
  24. begin
  25.   Headers := ListView1.GetHeaders;
  26.   try
  27.     for Item in Headers do
  28.       ShowMessage(Item.Text);
  29.   finally
  30.     Headers.Free;
  31.   end;
  32. end;

Nebo obecneji:

Kód: Delphi [Vybrat]
  1. uses
  2.   Generics.Collections;
  3.  
  4. type
  5.   TListViewHelper = class helper for TListView
  6.   public
  7.     function ItemsByPurpose(Purpose: TListItemPurpose): TList<TListViewItem>;
  8.   end;
  9.  
  10. function TListViewHelper.ItemsByPurpose(Purpose: TListItemPurpose): TList<TListViewItem>;
  11. var
  12.   Item: TListViewItem;
  13. begin
  14.   Result := TList<TListViewItem>.Create;
  15.   for Item in Self.Items do
  16.     if Item.Purpose = Purpose then
  17.       Result.Add(Item);
  18. end;
  19.  
  20. procedure TForm1.Button1Click(Sender: TObject);
  21. var
  22.   Item: TListViewItem;
  23.   Headers: TList<TListViewItem>;
  24.   Footers: TList<TListViewItem>;
  25. begin
  26.   Headers := ListView1.ItemsByPurpose(TListItemPurpose.Header);
  27.   try
  28.     for Item in Headers do
  29.       ShowMessage(Item.Text);
  30.   finally
  31.     Headers.Free;
  32.   end;
  33.  
  34.   Footers := ListView1.ItemsByPurpose(TListItemPurpose.Footer);
  35.   try
  36.     for Item in Headers do
  37.       ShowMessage(Item.Text);
  38.   finally
  39.     Headers.Free;
  40.   end;
  41. end;
« Poslední změna: 05-10-2017, 15:44:53 od Delfin »
A co chudinky ovce? Koupíš jim snad plovací vesty? Nebo jim nasadíš chůdy? Ještě lepší, kdybys je zkřížil s delfíny na ovce hopkavé!

Online Delfin

  • Plnoletý
  • ***
  • Příspěvků: 220
  • Karma: 6
    • Verze Delphi: 2009, Tokyo
Re:listview - item - header
« Odpověď #2 kdy: 05-10-2017, 15:55:11 »
Excellent
Rated 1 time
Jen pro vysvetlenou z toho blog postu Adding headers to TListView programmatically:

Kód: Delphi [Vybrat]
  1. with ListView1.Items.Add do // do list view se prida standardni TListViewItem a s jeho instanci se v bloku "with" dale pracuje
  2. begin
  3.   Text := Format('Header %d', [Group]); // nastavi se mu Text
  4.   Purpose := TListItemPurpose.Header; // a timto se z nej stane polozka typu header
  5. end;
A co chudinky ovce? Koupíš jim snad plovací vesty? Nebo jim nasadíš chůdy? Ještě lepší, kdybys je zkřížil s delfíny na ovce hopkavé!

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: