AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ProgressBar + Caption im TListView/VST

Offene Frage von "kng"
Ein Thema von kng · begonnen am 29. Mai 2008 · letzter Beitrag vom 31. Mai 2008
Antwort Antwort
kng

Registriert seit: 6. Feb 2008
25 Beiträge
 
#1

ProgressBar + Caption im TListView/VST

  Alt 29. Mai 2008, 19:50
Tag,

Ich würde gerne sowas, wie auf dem Bild im Anhang in einer TListView oder im VST darstellen.
Allerdings nicht nur mit der Prozentanzeige, sondern einer beliebigen Aufschrift und die ProgressBar soll sich beim Resizen der Columns entsprechend anpassen.

Ist das überhaupt möglich in einer normalen TListView oder sollte man bei sowas lieber den VST vorziehen?

Wie kann man sowas am besten machen?
Angehängte Grafiken
 
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: ProgressBar + Caption im TListView/VST

  Alt 29. Mai 2008, 23:14
Wenn du dich selber um das Zeichnen kümmerst, dann wäre es auch mit einer normalen LV/TV möglich,

aber im VST ist dieses doch sozusagen schon fertig drin.
(irgendwo in den VST-Demos sollte es sich leicht finden lassen)
$2B or not $2B
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: ProgressBar + Caption im TListView/VST

  Alt 29. Mai 2008, 23:19
Ich würde an deiner Stelle erst die ListView nehmen. Dann mal ein bisschen schauen und wenn es nicht klappt, kann man immer noch die VirtualStringTree nehmen. Denn wenn du nicht allzu große Sachen machen willst, lohnt sich eine VST in meinen Augen nicht: 1% VST genutzt, 101% ListView wenn du es so willst. Die ListView ist eben kleiner, daher lieber das eine Prozent draufhauen statt die große VST reinzuhämmern.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#4

Re: ProgressBar + Caption im TListView/VST

  Alt 29. Mai 2008, 23:25
Die bessere Wahl ist der VST.

Im Entwickler 04/08 (ab 18.06. im Handel) sind die notwendigen Ereignisse erklärt.
Es ist wirklich ein leichtes, dass mit dem VST umzusetzen.

Wenn du nicht so lange warten willst, schau dir mal die folgenden Ereignisse an:
OnAfter*
OnBefore*

besonders "onAfterCellPaint"

VST lohnt sich immer!
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#5

Re: ProgressBar + Caption im TListView/VST

  Alt 29. Mai 2008, 23:44
Ich weiß nicht welche Delphi-Version du benutzt und ob das von mir gleich angesprochene Problem in aktuellen Versionen immernoch vorhanden ist:

Borland hat bei der Kapselung von Device-Context der ListView in ein TCanvas irgendwie misst gebaut. Sobald du im OnCustomDrawXXX-Event das zeichnen per MoveTo/LineTo usw beginnst, verändert sich bei Delphi 7 z.B. die Schriftart alle Einträge. Das ändern der Farbe oder der Schriftart stellt noch kein Problem dar - das zeichnen aber schon. Dieser Artikel beschreibt genau, wie man das OnCustomDrawXXX-Event benutzt. Der von mir angesprochene Fehler wird in dem Artikel auch kurz im Abschnitt Some "ifs and buts" angesprochen.

Sobald du TListView verwenden willst und im CustomDraw-Event selber zeichnen willst, wirst du auf Probleme stoßen.

Eine relativ unelegante aber einfache Methode ist aber, einfach eine TProgressBar - Komponente auf das TListView-Objekt zu packen und es im OnCustomDraw-Event neu zu positionieren.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: ProgressBar + Caption im TListView/VST

  Alt 29. Mai 2008, 23:55
selber Malsen, ala MoveTo und LineTo, meinte ich eigentlich nicht ...
weiß nur grad nicht wie die APIs hießen, aber es war irgendwas in Richtung "DrawTheme" ... da kann man sich von der WinAPI die gewünschte ProgressBar, entsprechend dem aktuellen XP-Theme, zeichnen lassen.
$2B or not $2B
  Mit Zitat antworten Zitat
kng

Registriert seit: 6. Feb 2008
25 Beiträge
 
#7

Re: ProgressBar + Caption im TListView/VST

  Alt 30. Mai 2008, 00:12
Danke schonmal,

Ich hatte eig. auch vor, es erstmal mit einer normalen ListView zu machen, da ich mich mit dem VST noch nicht so gut auskenne und der Funktionsumfang der normalen ListView sonst für mein Programm eig. vollkommen ausreicht.

Ich habe es schon geschafft eine normale ProgressBar in eine ListView zu bekomme, allerdings habe ich es nicht geschafft, dass sich diese beim Resizen der Columns auch ordentlicht anpasst und mit einer Caption kann man diese auch nicht versehen.

Selbiges gilt für die Gauge, da kann man keinen benutzerdefinierten Text anzeigen.

Ich dachte da eher an eine Shape, PaintBox o.Ä.
Das auf dem Bild sieht ja auch eher gezeichnet aus.

Hat vielleicht jemand ein gaaanz kleines Beispiel , wie man das zeichnen könnte, wichtig ist erstmal nur die Beschriftung und das anpassen beim Resizen.

  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

Re: ProgressBar + Caption im TListView/VST

  Alt 30. Mai 2008, 00:51
Du brauchst z.B. einfach nur im OnDrawItem die ProgrssBar und den Text zeichnen ... im Rect-Parameter bekommst du die ItemPosition und zeichnest innerhalb dieses Bereichs.

Dieses Ereignis wird aufgerufen, wenn das Item neu gezeichnet werden muß, also auch nach dem Resizen.
$2B or not $2B
  Mit Zitat antworten Zitat
kng

Registriert seit: 6. Feb 2008
25 Beiträge
 
#9

Re: ProgressBar + Caption im TListView/VST

  Alt 30. Mai 2008, 16:23
Zitat von himitsu:
Du brauchst z.B. einfach nur im OnDrawItem die ProgrssBar und den Text zeichnen ... im Rect-Parameter bekommst du die ItemPosition und zeichnest innerhalb dieses Bereichs.

Dieses Ereignis wird aufgerufen, wenn das Item neu gezeichnet werden muß, also auch nach dem Resizen.
"einfach nur" ist gut.
Ich habe mich bis jetzt noch nie mit OwnerDraw beschäftigt.

Das Zeichnen würde ich vll. noch gerade so hinbekommne, aber es ist ja nicht nur eine ProgressBar und die Positionen müssen in bestimmten Ereignissen immer aktualisiert werden.
Da kommt man mit dem ganzen Zeichnen schnell durcheinander und schön aussehen tuts dann bestimmt auch nicht mehr.

Kennt vll. jemand eine gute ProgressBar, die eine Text/Caption Eigenschaft besitzt?
Dann würde ich es erstmal damit versuchen, ein OnColumnResize Ereignis kann man wahrscheinlich leicht nachrüsten.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#10

Re: ProgressBar + Caption im TListView/VST

  Alt 31. Mai 2008, 00:59
Wenn du einen Einstieg zu dem VST brauchst, kannst du das Video vom 2. Stammtisch schauen.

http://www.delphipraxis.net/video#Stammtisch_2
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  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 06:22 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