Einzelnen Beitrag anzeigen

Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Abstand zwischen Listvieweinträge ändern?

  Alt 4. Aug 2007, 14:15
Zitat von smart:
Hi,

wann rufst Du es auf? Bei mir gibt das eine Zugriffsverletzung.

Gruß
Heike
Wenn ich schon 2 Einträge im Listview habe, dann wird das 2. Item (ListView.Items.Item[1]) in der Position verändert. Die Eigenschaft ViewStyle der Listenansicht muß entweder auf vsIcon oder auf vsSmallIcon gesetzt sein.
Delphi-Referenz durchsuchenSetPosition

EDIT: So könnte man beim Hinzufügen neuer Items gleich den Abstand untereinander verringern:
Delphi-Quellcode:
var
  LstItm: TListItem;
  ItemRect: TRect;
  ItemPos: TPoint;
  ScrollX: integer;
const
  iLeft= 15;
  iTop= 0;
begin
  ScrollX := GetSystemMetrics(SM_CXVSCROLL);
  LstItm := ListView1.Items.Add;
  LstItm.Caption := 'Test Item';
  LstItm.ImageIndex := 0;
  with Listview1 do
    if Items.Count> 1 then
    begin
      ItemPos := Items.Item[Items.Count- 2].GetPosition;
      ItemRect := Items.Item[Items.Count- 2].DisplayRect(drBounds);
      if ItemRect.Right+ iLeft+ ListView1.LargeImages.Width+ ScrollX+ 10>= ClientWidth then
        LstItm.SetPosition(Point(iLeft, ItemRect.Bottom+ iTop))
      else
        LstItm.SetPosition(Point(ItemRect.Right+ iLeft, ItemPos.Y));
    end
    else
      LstItm.SetPosition(Point(iLeft, iTop));
Miniaturansicht angehängter Grafiken
listview_118.jpg  
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat