TAChart kleinere Fragen

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

TAChart kleinere Fragen

Beitrag von af0815 »

Bei TAChart ist das TAChartLegendPanel dabei.

Wenn ich das im Form plaziere (zB. ÜBER ein TAChart) und zB. Left oder Right bei 'Align' im Objektinspektor einstelle, liegt es am kompletten linken oder rechten Rand, was natürlich besch..eiden aussieht. Die Eigenschaft Anchors erscheint im OI nicht. Klicke ich aber mit der rechten Taste drauf, so kann der Anchor-Editor aufgerufen werden. Änderungen dort haben aber keine Auswirkung.

Wie realisiert ihr variable Layouts mit dem LegendPanel (ohne das Layout zu berechnen) ? Ich möchte das ganze nur innerhalb der TAChart am linken Rand mitschweben lassen (dort ist Platz bei mir) egal wie der Benutzer das Form vergrössert oder verkleinert.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

wp_xyz
Beiträge: 4864
Registriert: Fr 8. Apr 2011, 09:01

Re: TAChart kleinere Fragen

Beitrag von wp_xyz »

Du bist anscheinend der erste Benutzer dieser Komponente (mich selbst eingeschlossen). Ich verstehe nicht, was das separat hinzugefügte LegendPanel für dich mehr kann als die eingebaute Legende (Chart.Legend.Visible := true), die frei positioniert werden kann und vor allem weiß, wie groß sie ist - das LegendPanel hat eine fixe Größe. Das LegendPanel fehlt auch, wenn man einen Chart in die Zwischenablage kopiert oder als Bitmap speichert. Der einzige Anwendungsfall für das LegendPanel wäre meiner Meinung nach ein Popup-Fenster, das die Legende nur bei Bedarf, über dem Chart schwebend, anzeigt, ohne die Größe des Chart zu verändern.

Aber egal. Ich habe in r56009 die Properties Anchors und BorderSpacing des ChartLegendPanel auf "published" gesetzt.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: TAChart kleinere Fragen

Beitrag von af0815 »

Danke,

es hat den Hintergrund (wie oben kurz beschrieben) das ich es ÜBER die TAChart in eine Ecke legen kann und somit nicht Leerplatz erzeuge. Bei dieser Grafik kann eine Gaußverteilung angenommen werden und somit ist Links oder Rechts IN der Grafik Platz. :-) Mir ist es zuerst beim Design nicht aufgefallen, aber bei Auflösungsänderungen ist die Legende verschwunden oder irgendwo in der Mitte aufgetaucht.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: TAChart kleinere Fragen

Beitrag von af0815 »

Weitere Frage zur Legende, die ich in der Wiki nicht gefunden habe (oder überlesen).

Wenn ich einen einzigen Bar mit nur sehr wenigen Werten habe, kann ich die Werte auch in der Legende, statt der Auflistung der Graphen anzeigen lassen ?

BTW: Ich verwende die TAChart genauso intensiv wie früher TChart unter Delphi und da habe ich ca. 10 Jahre Businessgrafiken für das Management erstellt. Deswegen komme ich oft auf 'interessante' Ideen. Wenn man schon keine Daten hat (oder keine Guten) so müssen die zumindest SCHÖN Aussehen. Und die aktuellen Officeprodukte und Reportprodukte legen da die Latte schon hoch.

Danke für die Hilfe

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

wp_xyz
Beiträge: 4864
Registriert: Fr 8. Apr 2011, 09:01

Re: TAChart kleinere Fragen

Beitrag von wp_xyz »

Aber falls du mit "über" nicht "in einem frei schwebenden Fenster" meinst, geht das doch auch mit der eingebauten Legende. Einfach Chart.Legend.UseSideBar auf false setzen, die grobe Position legt man mit Chart.Legend.Alignment und die pixelgenaue mit Chart.Legend.MarginX und .MarginY fest. - siehe beigefügte Demo.

Die einzelnen Datenwerte einer Series werden in der Legende angezeigt (statt dem Series-Namen), wenn man in der Eigenschaft Series.Legend.Multiplicity die Einstellung lmPoint auswählt (dritter Absatz in http://wiki.lazarus.freepascal.org/TACh ... ion#Legend).

af0815 hat geschrieben:Wenn man schon keine Daten hat (oder keine Guten) so müssen die zumindest SCHÖN Aussehen. Und die aktuellen Officeprodukte und Reportprodukte legen da die Latte schon hoch.

Ich weiß, TAChart sieht da etwas altbacken aus, aber nachdem mir als Physiker die Daten wichtiger sind als der geschniegelte Glanz des Nichts, habe ich wenig Motivation da etwas zu ändern. Es gibt immerhin schon lange das Interface zu BGRABitmap und AggPas, so dass Kurven mit Antialiasing gezeichnet werden können. Und wir sind alle Programmierer. Mit ein paar Zeilen Code ist gleich der Chart-Hintergrund mit einem sanften Gradienten versehen oder ein Logo eingeblendet (http://wiki.lazarus.freepascal.org/TACh ... und_design).
Dateianhänge
LegendPos.zip
(2.19 KiB) 52-mal heruntergeladen

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: TAChart kleinere Fragen

Beitrag von af0815 »

Danke, das ist vermutlich das missing Link.

Die Grafiken selbst sind nicht 'altbacken', sondern die Verpackung drumherum muss man für das Management optimieren :-) Ich habe manchmal den Verdacht, das sich die Daten eh kein Schwein wirklich ansieht.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten