Autor Beitrag
cirrus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mo 10.02.03 18:05 
Hallo!
Wie kann ich eine einem TListView Eintrag (vsReport-Ansicht) eine TProgressBar in eine gewisse Spalte hinzufügen, und auf die Größenänderung des Collums reagieren? (Die ProgressBar soll halt immer so groß wie die jeweilige Spalte bleiben)
ich hoffe ihr könnt mir helfen!

_________________
Wenn die Nacht am tiefsten ist der Tag am nächsten
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.02.03 18:18 
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Progressbar1.Parent := Listview1;
  Progressbar1.Top := 10;
  Progressbar1.Left := 10;
  Progressbar1.Position := 20;
end;
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.02.03 18:38 
Ich hab es zwar noch nie selbst gemacht, aber TListView hat einige ...DrawItem's. Mit irgendeinem von denen wirst du schon die ProgressBar zeichnen können. Ob du allerdings die TProgressBar da einbauen kannst, daß glaube ich nicht. Du wirst wahrscheinlich dir selbst eine ProgressBar Bitmap erstellen müssen.

Allerdings ist das nur geschätzt. Wissen tue ich es nicht.

Du kannst zwar auch die TProgressBar's in TListView einsetzen, aber ich glaube nicht, daß du mit dem Ergebnis glücklich sein wirst.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.02.03 18:46 
Das Problem ist eigentlich nur die Position rauszufinden und dynamisch auf eine Größenänderung der Spalte zu reagieren. Mit meinem Code hat man sie aber schon mal im Listview.
cirrus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mo 10.02.03 20:29 
hi, danke für die antworten!
also die progressbar zu zeichnen is wirklich nich so das problem, das klappt gut...
nur leider hat die tlistview kein ereignis das bei spaltengröße-änderung ausgelöst wird...ich habs mal mit:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure tform1.WMNotify(var Msg: TWMNotify);
begin
 case msg.NMHdr.code of
  HDN_ENDTRACK:
   //größe verändert
 end;
end;


versucht, klappt aber nich so wirklich....
er stellt die größe dann nur wieder richtig ein wenn ich 2mal die größe der spalte ändere...
vielleicht hat da ja schon jemand seine erfahrungen gemacht...

gruss

cirrus

_________________
Wenn die Nacht am tiefsten ist der Tag am nächsten
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.02.03 20:33 
Wo ist die NMHEADER-Struktur geblieben? Siehe hier: HDN_ENDTRACK.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.02.03 20:49 
cirrus hat folgendes geschrieben:

nur leider hat die tlistview kein ereignis das bei spaltengröße-änderung ausgelöst wird...


Deshalb auch mein Vorschlag mit ...DrawItem. Ich will es jetz nicht selbst testen, aber ich wette mit dir, daß wenn du diene ProgressBar-Bitmap in eine der Spalten zeichnest, du sie nicht in eine andere Spalte überzeichnen kannst.

Ich schätze es ist schwerer als mit TProgressBar, dafür aber elleganter.
cirrus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mo 10.02.03 20:51 
@luckie>habe leider keine ahnung wie ich das einbauen soll.... :(
@popov>du meinst also ich soll die progressbar simulieren indem ich bitmaps zeichnen lasse? daran hatte ich noch nich gedacht, werds gleich mal versuchen, tnx ;)

_________________
Wenn die Nacht am tiefsten ist der Tag am nächsten