Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ListView: Itemabstände festlegen (https://www.delphipraxis.net/116908-listview-itemabstaende-festlegen.html)

Nils_13 8. Jul 2008 14:29


ListView: Itemabstände festlegen
 
Hi,

könnte man mit Hilfe von OwnerDraw die Abstände der Einträge einer ListView, in der Ansicht vsIcon, zueinander selbst setzen ? Wie, falls ja ?

marabu 8. Jul 2008 14:51

Re: ListView: Itemabstände festlegen
 
Hallo Nils,

natürlich kannst du dich freiwillig auf einen kleineren Teil des Item-Rect beschränken, aber grundsätzlich sind die Angaben zum Icon-Spacing Parameter der Shell (SystemParametersInfo), die der Benutzer deines Programmes steuert.

Freundliche Grüße

Nils_13 8. Jul 2008 15:19

Re: ListView: Itemabstände festlegen
 
Und kann man das Rect auch verkleinern, wenn man im virtuellen Modus arbeitet ? Dort gibt es in OnData an der markierten Stelle immer eine Zugriffsverletzung, obwohl das Array befüllt ist. Es scheint so, als würde erst OnData, dann OnCustomDrawItem und zum Schluss noch einmal OnData aufgerufen werden.
Delphi-Quellcode:
// OnwerData=True
// OwnerDraw=False <-- Fehler in Delphi, OwnerDraw darf nicht True sein.

procedure TRazFileManager.LVData(Sender: TObject; Item: TListItem);
begin
  with Item do
  begin
    Caption := DirsFiles[Index].Name; // AV
    SubItems.Add(DirsFiles[Index].Typ);
    if Pfad = 'root' then
      SubItems.Add(DirsFiles[Index].Pfad);
    ImageIndex := DirsFiles[Index].ImageIndex;
  end;
end;

procedure TRazFileManager.LVCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  Sender.Canvas.Font.Color := clRed;
end;

extrem 8. Jul 2008 20:24

Re: ListView: Itemabstände festlegen
 
Zitat:

Zitat von Nils_13
Hi,

könnte man mit Hilfe von OwnerDraw die Abstände der Einträge einer ListView, in der Ansicht vsIcon, zueinander selbst setzen ? Wie, falls ja ?

Hi

Da hier gerade was von Icon-Spacing geschrieben wurde, hast du es schon mit
Delphi-Quellcode:
CommCtrl.ListView_SetIconSpacing(listview1.Handle, 30, 0);
versucht?

Nils_13 8. Jul 2008 21:17

Re: ListView: Itemabstände festlegen
 
Das ist genau das was ich suche. Danke! :) Allerdings wäre es noch brauchbar, dennoch das Problem mit OwnerDraw hinzubekommen, damit ich damit auch noch später was mit Lazarus anfangen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 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