AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Abstand zwischen Listvieweinträge ändern?
Thema durchsuchen
Ansicht
Themen-Optionen

Abstand zwischen Listvieweinträge ändern?

Offene Frage von "delphinia"
Ein Thema von smart · begonnen am 4. Aug 2007 · letzter Beitrag vom 29. Jan 2008
Antwort Antwort
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#1

Abstand zwischen Listvieweinträge ändern?

  Alt 4. Aug 2007, 11:47
Hallo Alle!

Wenn ich in einem Listview Symbole darstellen möchte, wie kann ich den Abstand zwischen den Symbole verkleinern?

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Abstand zwischen Listvieweinträge ändern?

  Alt 4. Aug 2007, 13:10
Hallo Heike,

habe bei DSDT etws gefunden.
Dort wird gesagt, dass dies wenn es geändert wird (registry) sich auf das ganze Windowssystem auswirkt.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

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

Re: Abstand zwischen Listvieweinträge ändern?

  Alt 4. Aug 2007, 13:19
Hi,

mit ListView.Items.Item[1].SetPosition(Point(5,6)); kannst du auch selber die Positionen ändern.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Abstand zwischen Listvieweinträge ändern?

  Alt 4. Aug 2007, 13:34
Zitat von bitsetter:
Hi,

mit ListView.Items.Item[1].SetPosition(Point(5,6)); kannst du auch selber die Positionen ändern.
Hi,

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

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
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
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Abstand zwischen Listvieweinträge ändern?

  Alt 8. Jan 2008, 01:20
Zitat von bitsetter:
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));
habe den Code ausprobiert - aber die Icons bleiben bei mir im selben abstand

habe es exakt so genau so gemacht wie es da oben steht - hmmm Ideen?!
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

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

Re: Abstand zwischen Listvieweinträge ändern?

  Alt 29. Jan 2008, 23:00
Hallo,

dazu gibt es eigentlich eine ziemlich einfache Möglichkeit:
Delphi-Quellcode:
uses commctrl;
...

  commctrl.ListView_SetIconSpacing(listview1.Handle, 55, 55);
Wenn man den Effekt gleich sehen möchte, am besten im OI IconOptions.AutoArrange des Listview auf true setzen.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz