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 Jedi TJvListview (https://www.delphipraxis.net/79281-jedi-tjvlistview.html)

bluescreen25 19. Okt 2006 16:03


Jedi TJvListview
 
Kennt sich einer mit dieser Kompo aus?

In den Eigenschaften habe ich zu Picture ein bmp eingefügt, welches dann den Hintergrund des Listview hergibt.

Kommen Items rein, überdecken diese das Hintergrundbild, gewünscht war die Captions der Items auf den Hintergrund zu bekommen, klappt aber irgendwie nicht.

Grüße ,bluescreen25

marabu 20. Okt 2006 07:13

Re: Jedi TJvListview
 
Guten Morgen,

du musst die Items selbst zeichnen. Setze OwnerDraw auf True und probiere aus, was dir gefällt:

Delphi-Quellcode:
procedure TDemoForm.JvListViewCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  r: TRect;
begin
  with (Sender as TJvListView).Canvas do
  begin
    // restore background
    Brush.Style := bsClear;
    FillRect(Item.DisplayRect(drBounds));
    // show caption
    r := Item.DisplayRect(drLabel);
    Textout(r.Left+2, r.Top+2, Item.Caption);
  end;
  // keep bad things from happening
  DefaultDraw := False;
end;
Grüße vom marabu

bluescreen25 20. Okt 2006 13:54

Re: Jedi TJvListview
 
Zitat:

Zitat von marabu
Guten Morgen,

du musst die Items selbst zeichnen. Setze OwnerDraw auf True und probiere aus, was dir gefällt:

Delphi-Quellcode:
procedure TDemoForm.JvListViewCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  r: TRect;
begin
  with (Sender as TJvListView).Canvas do
  begin
    // restore background
    Brush.Style := bsClear;
    FillRect(Item.DisplayRect(drBounds));
    // show caption
    r := Item.DisplayRect(drLabel);
    Textout(r.Left+2, r.Top+2, Item.Caption);
  end;
  // keep bad things from happening
  DefaultDraw := False;
end;
Grüße vom marabu

Wie bekomme ich die SmallIcons vor die Einträge gezeichnet? Und warum sind alle Captions ineinander gezeichnet?
Gruß, bluescreen25

marabu 20. Okt 2006 21:20

Re: Jedi TJvListview
 
Wenn du mehrzeilige Items in der ListView (ViewStyle vsReport) haben möchtest, dann solltest du dich nach einer anderen Komponente umschauen. Die Item-Höhe wird über den Font eingestellt und kann später nicht mehr verändert werden. Viele ListView-Ersatzlösungen sind deutlich flexibler. Wenn ich das Feature bräuchte, dann würde ich VirtualTreeView und EasyListView daraufhin untersuchen.

Gute Nacht

marabu

bluescreen25 20. Okt 2006 21:38

Re: Jedi TJvListview
 
Zitat:

Zitat von marabu
Wenn du mehrzeilige Items in der ListView (ViewStyle vsReport) haben möchtest, dann solltest du dich nach einer anderen Komponente umschauen. Die Item-Höhe wird über den Font eingestellt und kann später nicht mehr verändert werden. Viele ListView-Ersatzlösungen sind deutlich flexibler. Wenn ich das Feature bräuchte, dann würde ich VirtualTreeView und EasyListView daraufhin untersuchen.

Gute Nacht

marabu

Ich habe mir beide Kompos angeschaut, diese scheinen sehr komplex zu sein. Naja ich werde es mal probieren.

Viele Grüße,bluescreen25

bluescreen25 21. Okt 2006 19:11

Re: Jedi TJvListview
 
Sooooo, ich habe mal das EasyListView ins Auge gefasst.
Die Hilfedatei ist eher ungenügend, jedoch habe ich alles soweit, das es:

die Items mit Icon und 2-Zeilig darstellt.

Meine Frage: Wie erreiche ich beim EasyListView den virtual-Modus?

Grüße,bluescreen25

marabu 22. Okt 2006 07:50

Re: Jedi TJvListview
 
Guten Morgen,

habe mir EasyListView mal angesehen. Die Komponente scheint durch und durch virtuell zu arbeiten. Beim event OnItemGetCaption() werden die Texte für die Items abgefragt. Hilfreich ist das Studium des OnClick() handlers von Button2 im FullDemoProject.

Freundliche Grüße

bluescreen25 22. Okt 2006 07:59

Re: Jedi TJvListview
 
Zitat:

Zitat von marabu
Guten Morgen,

habe mir EasyListView mal angesehen. Die Komponente scheint durch und durch virtuell zu arbeiten. Beim event OnItemGetCaption() werden die Texte für die Items abgefragt. Hilfreich ist das Studium des OnClick() handlers von Button2 im FullDemoProject.

Freundliche Grüße

Erstmal herzlichen Dank für deine schnelle Antwort.

Da ich mir nicht zu helfen wusste habe ich die items:
Delphi-Quellcode:
begin
      with ShowList.Items.Add do
      begin                         //in List (Files ohne Pfade,ohne Endung)
        Caption:=(Copy(ExtractFilename(FileLst[I]),0, length(ExtractFilename(FileLst[I]))- 4));
        ImageIndex:=1;              //MP3-Icon anzeigen
        Captions[1] := FileLst[I];  //kompletter Pfad
      end;
wieder nach "altem" Prinzip geaddet. Bis ich erstmal herausgefunden hatte, wie hier die SubItems behandelt werden...naja...egal... :oops:

Ich schau mir deinen Tip mal an und hoffe da weiter zu kommen.
Kommst du mit der Hilfe-Datei gut klar oder ist das nur bei mir so?


Gruß, bluescreen25

marabu 22. Okt 2006 08:26

Re: Jedi TJvListview
 
Die Hilfe-Datei ist ja eigentlich keine Hilfe-Datei, sondern lediglich ein automatisch generiertes Gerüst. Damit existiert schonmal die Struktur, aber die eigentliche Hilfe muss erst noch geschrieben werden. Der Aufwand dafür dürfte allerdings nicht gering sein. Einziger Anhaltspunkt für die Funktionsweise scheinen momentan die Demos zu sein.

Grüße


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