Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Aufträge aus Listbox nach ihren Fortschritt darstellen


Friedhelm - Di 19.11.02 15:48
Titel: Aufträge aus Listbox nach ihren Fortschritt darstellen
Hallo zusammen,
in einer Listbox werden x-Aufträge folgend angezeigt:

Auftrag Nr - LieferDatum - Kürzel - ProzentFertig

z. B. so: 110345-021231-A13-P100

Ich möchte nun alle Aufträge 1-n auf einem Panel -oder so- in ihrem Fortschritt anzeigen. Das soll so geschehen:

110345-021231-A13 und die Prozentzahl in einem roten Balken.

Ich bekomme also alle Aufträge aufgelistet, verbunden mit einem roten Balken, je nach Fortschritt.

z.B. so: 110345-021231-A13 _______________ (der Strich wäre der rote Balken 50%. Gauge vielleicht ).

Und das Ganze soll scrollbar sein. Ich möchte ja alle Aufträge in einem Fenster hintereinander sehen können.

Hat dazu jeman eine Idee, welche Komponenten man dafür sinnvoll benutzt und wie ich vorgehen muss?

Danke für die Tips.
Gruss
Friedhelm


Klabautermann - Di 19.11.02 16:12

Hallo,

ich würde dir empfehlen eine ListView zu verwenden. Diese ist etwas komplizierter als die ListBox, kann aber einiges mehr.
So kannst du z.B. mehrere Spalten verwenden. Jeder Palte kannst du ein eigenes Image verpassen, du kannst auf Klicks auf die Spaltenköpfe reagieren (um z.B. die Sortierung zu ändern) und über die Eigenschaft OnCompare kannst du die (automatische)Sortierung nach deinen wünschen beinflussen. Um den BAlken in den Hiltergrund zu Zeichnen musst du dich dann wahrscheinlich in das Ereignis OnDraw-Item einklinken, wo du ein Rechteck (von berechneter Größe) in den Hintergrund zeichnest bevor du den Text reinschreibst.

Schaue dir die Komponente mal genauer an.

Gruß
Klabautermann


LCS - Di 19.11.02 16:16

Hi
ich würde die Aufträge alle in der Listbox stehen lassen und in einer DrawItem-Routine anstelle der Prozentzahl einen entsprechenden Balken zeichen.

Gruss Lothar


Friedhelm - Mi 20.11.02 13:06

Hallo Lothar

Es müsste dann so aussehen:

110345-021231-A13 _______________

Das wäre dann richtig, wenn man srollen kann.

Aber wie kann man das denn anstellen?

Gruss Friedhelm


wulfskin - Mi 20.11.02 16:19

Hallo Friedhelm!

Auf dieser Seite, wirst du fündig werden: http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20168107.html. Das Bespiel von DMN ist wohl am einfachsten zu verstehen!

Gruß Hape!