Gantt-Diagramm

Rund um die LCL und andere Komponenten
Antworten
u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Gantt-Diagramm

Beitrag von u-boot »

Ergebnis sollte in etwa so aussehen:
http://www.online-excel.de/excel/gra/gant3.jpg

Also ein Balkendiagramm bei dem mehrere Balken (am besten noch in unterschiedlicher Farbe) aneinander gesetzt werden können.
Erst dachte ich TAChart könnte geeignet sein. Bisher kam ich aber nicht drauf wie das mit TAChart gemacht werden könnte. TAChart scheint zwar mächtig aber irgendwie für das Vorhaben nicht ganz so geeignet ?
(Punkte mit gleichem X-Wert ergeben nur ne dünne linie und wenn man mehrere Series dafür nehmen will ist die Breite grundsätzlich verschieden...)

Ein Weiterer Versuch war TBarChart, was anscheinend aber einen Balken pro zeile Zeichnen kann.

Oder ist es wirklich notwendig dafür was eigenes zu programmieren ?
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: Gantt-Diagramm

Beitrag von theo »

u-boot hat geschrieben: Oder ist es wirklich notwendig dafür was eigenes zu programmieren ?
Ich kenne mich mit den Chart Komponenten nicht gut aus, aber sowas selber zu programmieren sollte relativ schnell gemacht sein.
Es muss ja keine "kann alles" Komponente sein. Ein Grid und eine Liste von Rectangles die im Paint Ereignis gezeichnet werden sind vielleicht schneller programmiert, als eine Chart Komponente für deinen Zwecke "umgebogen" ist.

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Gantt-Diagramm

Beitrag von Euklid »

Ich kenne auch keine Komponente, die Gant-Diagramme zeichnen kann. Nach meiner Einschätzung sollte es aber problemlos und mit vertretbarem Aufwand möglich sein, sowas selbst zu programmieren...

- Euklid

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Gantt-Diagramm

Beitrag von mschnell »

+1

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: Gantt-Diagramm

Beitrag von u-boot »

Jo gut ich werd das mal angehn. Wenigstens hab ich dann die Hoffnung was zu machen, was noch nicht vorhanden ist.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Gantt-Diagramm

Beitrag von pluto »

Also hier mal meine Vorgehensweise, Stark vereinfacht *G*:
Jede Zeile ist eine TObjectList, jede Zeile wird in einer TObjectList verwaltet.
Jetzt erstellt du dir "einfach" zwei Klassen, die erste wird in der Zeile als Objekt da gestellt, sie braucht auch nur Eigenschaften wie Left, und Widht. Die zweite Klasse ist für die Zeile zuständig, sie braucht nur Eigenschaften wie Top und für die Height.

Jede Zeile könnte eine eigene Render Procedure haben, und jedes Objekt könnte sich selbst rendern, dass vereinfacht einiges.,

Vorher erstellt du dir eine eigene Komponente abgeleitet von TCustomControl. Diese stellt dir dein Canvas zu Verfügung. Das Auswählen von Objekten ist genauso einfach. Jedes Zeilen-Objekt könnte außerdem noch Grafisch da gestellt werden.(Wenn erwünscht).

Probleme könnte es mit den zwei Schrift-Leisten unten und Links geben. Hier würde ich vielleicht einfach ein neues Objekt erstellen, welches nur ein Text Zeichnet und das Gatter dann eine Zeile und eine Spalte mehr machen.
Somit wäre das ganze sogar Dynamisch.

Die Objekte könnten noch weitere Eigenschaften wie z.b. für das Aussehen(Brush oder Pen) haben. Damit es schön "Bunt" werden könnte *G*
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: Gantt-Diagramm

Beitrag von theo »

@Pluto: Viel zu kompliziert. Alles was er braucht ist eine Liste von TRect.
Im überschriebenen Paint einer TCustomControl-Ableitung zeichnet er dann einfach mit LineTo das Gitter.
Danach mit Rectangle für jeden Listeneintrag ein Rechteck. Fertig.
Auswählen muss er ja nichts.

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: Gantt-Diagramm

Beitrag von u-boot »

Ich hatte mich schon entschieden das tatsächlich über ne Gridkomponente zu realisieren und jeden Balken als Bitmap erstellen zu lassen.

Wenn man bis ca. 60 Rechtecke pro Balkenfeld zu tun hat und ca. 100 Balkenfelder könnts mit der Rechenzeit schon Probleme geben.

Danke allen für die Hinweise.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Gantt-Diagramm

Beitrag von pluto »

Darum würde ich auch nur EIN Canvas nehmen. *G*
MFG
Michael Springwald

Antworten