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 in Kaaza oder eMule style (https://www.delphipraxis.net/5436-listview-kaaza-oder-emule-style.html)

lordcroc 5. Jun 2003 23:38


Listview in Kaaza oder eMule style
 
hallo Leute so mal die nächsten Frage zu Listview.
1. Wie bekomme ich eine Progressbar in eine Spalte wie in emule.
2. Wie bekomme ich eine baumstruktur wie in Kazaa.

ist das denn Überhaupt möglich?

schon mal Danke im Voraus.

Luckie 5. Jun 2003 23:49

zu 1.)
So geht es mit Buttons. Mit einer Progressbar entsprechend:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    ListView1 : TListView;
    procedure FormCreate(Sender : TObject);
    procedure ListView1CustomDraw(Sender : TCustomListView;
      const ARect : TRect; var DefaultDraw : Boolean);
  private
    { Private-Deklarationen }
    procedure MyButtonClick(Sender : TObject);
  public
    { Public-Deklarationen }
  end;

var
  Form1 : TForm1;

implementation

{$R *.dfm}

uses
  StdCtrls;

var
  MyButton : array of TButton;

procedure TForm1.MyButtonClick(Sender : TObject);
var
  s : string;
begin
  s := ListView1.Items[(Sender as TButton).Tag].Caption;
  ShowMessage(s);
end;

procedure TForm1.FormCreate(Sender : TObject);
var
  i : Integer;
begin
  setlength(MyButton, Listview1.Items.Count);
  for i := 0 to ListView1.Items.Count - 1 do
  begin
    MyButton[i] := TButton.Create(ListView1);
    MyButton[i].Parent := Listview1;
  end;
end;

procedure TForm1.ListView1CustomDraw(Sender : TCustomListView;
  const ARect : TRect; var DefaultDraw : Boolean);
var
  i : Integer;
begin
  setlength(MyButton, Listview1.Items.Count);
  for i := 0 to Listview1.Items.Count - 1 do
  begin
    MyButton[i].Parent := Listview1;
    MyButton[i].Left := Listview1.Left + Listview1.Columns.Items[0].Width;
    MyButton[i].Top := 18 + i * 14;
    MyButton[i].Height := 12;
    MyButton[i].Width := ListView1.Columns[1].Width;
    MyButton[i].Tag := i;
    MyButton[i].Caption := ListView1.Items[i].Caption;
    MyButton[i].OnClick := MyButtonClick;
  end;
end;
zu 2.) Kuck dir mal den Virtual Treeview von Mike Lischke an, der sollte sowas können.

cheatzs 2. Jan 2004 20:45

Re: Listview in Kaaza oder eMule style
 
Hi,
der Code funktioniert bei mir nich so richtig. Habs genau so ausprobiert wie oben.
Benutze Delphi 7
Beim Adden eines neuen Items kommt bei mir ne Zugriffsverletzung, nehm an das die deshalb kommt, weil der neue Button nicht initialisiert wurde.
Wenn ich das dann aber mache, wird das ListView andauernd wieder neu gezeichnet und es flackert stark.
Weiß jemmand wie man das wegbekommt oder wie man es anders machen könnte?

Danke im Vorraus

Luckie 2. Jan 2004 22:29

Re: Listview in Kaaza oder eMule style
 
Auf meiner Homepage bei den Delphi Demos findet sich ein Demo-Projekt dafür, probier das mal aus. Funktioniert bei mir mit Delphi 6 eigentlich wunderbar.

cheatzs 3. Jan 2004 09:43

Re: Listview in Kaaza oder eMule style
 
Danke, geht jetzt, keine Ahnung was ich da vorher falsch gemacht hatte.

toms 3. Jan 2004 09:50

Re: Listview in Kaaza oder eMule style
 
Zitat:

Auf meiner Homepage bei den Delphi Demos findet sich ein Demo-Projekt dafür
Wobei beim Ändern der Spaltengrösse die Buttons/Progressbars nicht automatisch vergrössert werden.

Plague 31. Mär 2004 15:59

Re: Listview in Kaaza oder eMule style
 
@ Luckie - oder sonst jemand der das weiß

Welche Demo meinst Du? Du meinst doch die Seite www.luckie-online.de, oder?

Danke
Thomas


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