TBarchart in Lazarus 2.x installieren

Rund um die LCL und andere Komponenten

TBarchart in Lazarus 2.x installieren

Beitragvon harrybonn » 10. Jan 2020, 11:04 TBarchart in Lazarus 2.x installieren

Hallo, habe ein älteres Projekt unter Lazarus 1.26 mit der TBarchart-Komponente. Die ist ja seit 1.4 oder so nicht mehr dabei (sondern TAChart).

Nun will ich das Projekt auf Lazarus 2.x umstellen, aber die alte TBarchart-Komponente weiterverwenden.
Wie kann ich die nun unter Lazarus 2.x installieren?

TAChart scheint mir in keiner Hinsicht kompatibel zu sein mit TBarchart und ich habe keine Lust hier alles neu zu programmieren, für meine Zwecke reicht mir das TBarchart.
harrybonn
 
Beiträge: 85
Registriert: 7. Jan 2011, 15:18

Beitragvon wp_xyz » 10. Jan 2020, 12:15 Re: TBarchart in Lazarus 2.x installieren

Zunächst musst du dir den Quellcode von TBarChart aus der Version 1.2.6 herauskopieren - es ist nur eine einzige Unit, barchart.pp im Ordner lcl der Lazarus-Installation. Du kannst für sie ein Package erzeugen und sie in die IDE installieren. Aber eine nicht mehr unterstützte Komponente würde ich in meiner täglichen Arbeit nicht mitschleppen, sondern in dem Projekt alles zur Laufzeit erledigen. Daher würde ich barchart.pp in das Projektverzeichnis kopieren und die Komponente zur Laufzeit, im OnCreate-Ereignis des Formulars, erzeugen, sowie dort auch die Properties aus der lfm-Datei übernehmen. In der lfm-Datei dann noch die BarChart-Komponente löschen, und es sollte alles funktionieren.

Ich habe das mit dem BarChart-Demo durchgespielt, das sich damals im examples-Ordner befand. - Siehe Anhang. Dieses Demo-Programm wird von der aktuellen Laz-Version klaglos akzeptiert.

Allerdings ist es auch nicht viel Arbeit, das Projekt auf das nun unterstützte und viel leistungsfähigere TAChart umzustellen. Im englischen Forum findest du hier die nötigen Schritte. Im Anhang auch das entsprechende Projekt dazu (allerdings nur für senkrechte Balken, für waagrechte Balken braucht man ein paar Änderungen, die ich jetzt zu faul bin aufzuschreiben - und es gibt auch noch ein Tutorial im wiki).
Dateianhänge
BarChart mit TAChart.zip
(2.08 KiB) 18-mal heruntergeladen
barchart_demo.zip
(74.83 KiB) 16-mal heruntergeladen
wp_xyz
 
Beiträge: 3054
Registriert: 8. Apr 2011, 08:01

Beitragvon harrybonn » 10. Jan 2020, 13:19 Re: TBarchart in Lazarus 2.x installieren

Super, ganz herzlichen Dank. :)

Evtl. ist das ja doch nicht so kompliziert mit der Umstellung.
Jedenfalls mit vertikalen Balken funktioniert es schon.
Die Info zu den horizontalen Balken steht auch im Wiki? Habs leider nicht gefunden...
harrybonn
 
Beiträge: 85
Registriert: 7. Jan 2011, 15:18

Beitragvon wp_xyz » 10. Jan 2020, 13:43 Re: TBarchart in Lazarus 2.x installieren

wp_xyz
 
Beiträge: 3054
Registriert: 8. Apr 2011, 08:01

Beitragvon harrybonn » 11. Jan 2020, 18:13 Re: TBarchart in Lazarus 2.x installieren

Super, danke.

Krieg ich auch soweit hin, mit 3 Sachen bin ich nicht ganz so glücklich:

- Ein Bar hatte in Barchart noch den exakten Wert am Ende des Balkens angezeigt. Ich habe leider keine Möglichkeit gefunden, das hier entsprechend zu aktivieren.
- Wenn ich die Ausrichtung horizontal nehme, dann steht nur noch eine Beschreibung eines Balkens unten (statt alle 3 auf der linken Seite).
- Die Balken nehmen immer die ganze Breite des zur Verfügung stehenden Platzes ein. Macht man Sie schmaler, dann sind die Abstände zwischen den Balken riesig.
harrybonn
 
Beiträge: 85
Registriert: 7. Jan 2011, 15:18

Beitragvon wp_xyz » 11. Jan 2020, 19:43 Re: TBarchart in Lazarus 2.x installieren

harrybonn hat geschrieben:- Ein Bar hatte in Barchart noch den exakten Wert am Ende des Balkens angezeigt. Ich habe leider keine Möglichkeit gefunden, das hier entsprechend zu aktivieren.
Setze BarSeries.Marks.Style auf smsValue.

harrybonn hat geschrieben:- Wenn ich die Ausrichtung horizontal nehme, dann steht nur noch eine Beschreibung eines Balkens unten (statt alle 3 auf der linken Seite).
Das ist etwas komplizierter - ich hatte gehofft, du brauchst das nicht... Egal: Das Problem ist, dass die Achse nichts davon mitkriegt, dass die Datenpunkte ihr x und y vertauscht haben. Du musst eine eigene ChartSeries für die Achsenbeschriftung erzeugen, die an die Eigenschaft Marks.Source der LeftAxis angebunden wird. Im beigefügten Beispiel zeige ich, wie man das machen könnte (es gibt natürlich noch andere Möglichkeiten): hier nehme ich eine UserDefinedChartSource, die die x/y-Werte der Series ausliest und vertauscht sowie den Datenpunkt-Text durchreicht.

harrybonn hat geschrieben:- Die Balken nehmen immer die ganze Breite des zur Verfügung stehenden Platzes ein. Macht man Sie schmaler, dann sind die Abstände zwischen den Balken riesig.
Da verstehe ich nicht, was du meinst. Die Balkenbreite wird bestimmt durch die Eigenschaft "BarWidthPercent" der BarSeries - das ist der prozentuale Abstand zum nächsten Datenpunkt. Der Default-Wert 70 sollte in den meisten Fällen ok sein. Wenn der Datenpunktabstand nicht konstant ist, variiert die Balkenbreite von Punkt zu Punkt. Wenn man "BarWidthStyle" auf bwPercentMin setzt, dann wird als Bezugswert für die Prozentrechnung der kleinste Punktabstand genommen, so dass man eine einheitliche Balkenbreite bekommt.

Falls du mehrere Balkenreihen neben- oder übereinander darstellen willst, gibt es sicher noch ein paar Fragen.
Dateianhänge
project1.lpi
(2.09 KiB) 16-mal heruntergeladen
wp_xyz
 
Beiträge: 3054
Registriert: 8. Apr 2011, 08:01

Beitragvon harrybonn » 14. Jan 2020, 20:05 Re: TBarchart in Lazarus 2.x installieren

Super, schon mal ganz herzlichen Dank für die tolle Unterstützung.

* Das mit dem Value hat sofort funktioniert.

* Deine Datei-Anlage hier bestand leider nur aus einer .lpi - Datei (sonst weiter nichts), ich denke, da fehlt noch was.
harrybonn
 
Beiträge: 85
Registriert: 7. Jan 2011, 15:18

Beitragvon wp_xyz » 15. Jan 2020, 00:13 Re: TBarchart in Lazarus 2.x installieren

Sorry, da habe ich mich verklickt...
Dateianhänge
barseries_horizontal.zip
(2.76 KiB) 19-mal heruntergeladen
wp_xyz
 
Beiträge: 3054
Registriert: 8. Apr 2011, 08:01

Beitragvon harrybonn » 15. Jan 2020, 19:03 Re: TBarchart in Lazarus 2.x installieren

Danke, mit dem Projekt-Beispiel konnte ich wieder alles so herrichten, wie es zuvor mit TBarchart war...

Noch mal ganz herzlichen Dank :) :) :)
harrybonn
 
Beiträge: 85
Registriert: 7. Jan 2011, 15:18

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

porpoises-institution
accuracy-worried