Einzelnen Beitrag anzeigen

Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: TListView mit ViewStyle=vsList - Anzahl der Elemente in einer Spalte

  Alt 16. Okt 2013, 04:12
Hallo,

ich bin mir nicht zwar sicher, ob ich Dich richtig verstanden habe (Listitems werden von Dir wohl nicht gezeichnet o. ä.), aber vielleicht hilft Dir folgendes weiter:
Delphi-Quellcode:
function VisibleColCount (const Listview : TListView) : Integer;
var
  cw, iw : Integer;
begin
  Result := 0;
  with Listview do
    begin
      cw := ClientWidth;
      iw := Items [0].DisplayRect(drBounds).Width
    end;

  while Result <= cw - iw do
    Inc (Result, iw);

  Result := Result div iw
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  c, r : Integer;
begin
  c := Listview1.VisibleRowCount div VisibleColCount (ListView1);
  if c >= ListView1.Items.Count then
    begin
      c := 1;
      r := ListView1.Items.Count
    end
  else
    begin
      r := c;
      c := ListView1.Items.Count div c;
      if c * r < ListView1.Items.Count then
        Inc (c)
    end;
  ShowMessage (Format ('%d Spalten mit max. %d Einträgen pro Spalte', [c, r]));
end;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat