[Gelöst] TChart Probleme mit mehreren Achsen.

Rund um die LCL und andere Komponenten
wp_xyz
Beiträge: 5153
Registriert: Fr 8. Apr 2011, 09:01

Re: TChart Probleme mit mehreren Achsen.

Beitrag von wp_xyz »

pluto hat geschrieben:Die Werte Stimmen jedenfalls.
OK, dann mach' jetzt mal folgendes (das wird gleichzeitig ein Mini-Tutorial):
- Klicke ein Label ("Label1") aufs Formular
- Setze eine ChartTools-Komponente aufs Formular und verbinde sie mit Chart1.Toolset.
- Doppelklick auf dieser Komponente und ein DatapointCrosshair-Tool hinzufügen (ich glaube ich hatte das als "Fadenkreuz" übersetzt).
- Dieses Tool im Objektbaum auswählen.
- Im Objektinspector unter "Shift" das Element "ssLeft" ankreuzen und im OnDraw-Ereignis folgenden Code schreiben:

Code: Alles auswählen

procedure TForm1.ChartToolset1DataPointCrosshairTool1Draw(
  ASender: TDataPointDrawTool);
var
  ser: TChartSeries;
begin
  ser := TChartSeries(ASender.Series);
  if ser = nil then
    Label1.Caption := '' else
    Label1.Caption := Format('%s: x = %.0f, y = %f', [ser.Title, ser.XValue[ASender.PointIndex], ser.YValue[ASender.PointIndex]]);
end;   
So - wenn du jetzt mit gedrückter linker Maustaste (ssLeft!) über das Diagramm fährst und in die Nähe eines Datenpunktes kommst, wird ein fadenkreuz eingeblendet und in dem anfangs eingefügten Label der Wert an dem Datenpunkt angezeigt. So kannst du überprüfen, ob die geplotteten Werte mit der LibreOffice-Rechnung übereinstimmen.

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

Re: TChart Probleme mit mehreren Achsen.

Beitrag von wp_xyz »

pluto hat geschrieben:
Das könnte schon ein Problem sein, ich habe letzt Zeit mit "svn up" gesehen, das an Chart geändert wurde.
Jedenfalls taucht das Problem jetzt nicht mehr auf...
Es gab vor einigen Monaten - damals war Lazarus trunk noch in Version 1.5 - ein Problem mit dem Designmodus, der sich auf TAChart ausgewirkt hat, es wurde auch hier im deutschen Forum diskutiert. Offenbar fiel deine Installation in diesen (kurzen) Zeitraum.

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: TChart Probleme mit mehreren Achsen.

Beitrag von pluto »

OK, dann mach' jetzt mal folgendes (das wird gleichzeitig ein Mini-Tutorial):
Danke. Hat Prima Funktioniert. Ich musste nur TChartSeries durch TLineSeries

Es muss an den Daten liegen. Vielleicht liegt es auch an den Einteilungen pywws z.b. teilt in zwei Stunden Schritten ein.

Leider kann man in pywws nicht ein bestimmten Tag plot sondern nur z.b. die letzten 24 Stunden.
Im Anhang ist die Grafik von heute von pywws und eine von TChart.
Dateianhänge
HeuteChart.png
24hrs.png
MFG
Michael Springwald

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: TChart Probleme mit mehreren Achsen.

Beitrag von pluto »

Das mit den Faden Kreuz ist Cool.

Die Werte Stimmen soweit, Das muss noch an was anders liegen...
MFG
Michael Springwald

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

Re: TChart Probleme mit mehreren Achsen.

Beitrag von wp_xyz »

Ich hab's oben schon gesagt: die Outputs der beiden Programme sehen unterschiedlich aus, weil sie unterschiedliche Achseneinteilungen verwenden. Setze im Range.Min und .Max der Druckachse die Werte 960 und 1050 ein, entsprechend mit den anderen Achsen, ziehe das Format des Chart so weit in die Quere wie in dem anderen Programm, dann wirst du dieselben Diagramme erhalten (natürlich nur bei denselben Daten).

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: TChart Probleme mit mehreren Achsen.

Beitrag von pluto »

Das hatte ich schon mal gemacht, nur dann wurden keine Linen Gezeichnet.
MFG
Michael Springwald

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: TChart Probleme mit mehreren Achsen.

Beitrag von pluto »

Stimmt. Jetzt geht das in der neuen Version, vorher ging das nicht.

Prima. Bin am Ziel.

VIELEN DANK.
MFG
Michael Springwald

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

Re: TChart Probleme mit mehreren Achsen.

Beitrag von wp_xyz »

pluto hat geschrieben:Ich musste nur TChartSeries durch TLineSeries
Ist ok, aber ich möchte nur hinweisen, dass TChartSeries allgemeiner ist. Damit funktioniert der Code auch, falls du einmal eine TAreaSeries oder TBarSeries statt TLineSeries verwendest. Ich hatte nur vergessen zu erwähnen, dass du TACustomSeries in die uses-Zeile aufnehmen musst, damit der Bezeichner TChartSeries gefunden wird.
pluto hat geschrieben:Das mit den Faden Kreuz ist Cool.
Wenn du das permanent im Programm einsetzen willst, solltest du evtl noch dafür sorgen, dass das Fadenkreuz nach dem Loslassen der Maustaste wieder verschwindet. Weise folgenden Code dem AfterMouseUp-Ereignis des Tools zu:

Code: Alles auswählen

procedure TForm1.ChartToolset1DataPointCrosshairTool1AfterMouseUp(ATool: TChartTool; APoint: TPoint);
begin
  TDatapointCrosshairTool(ATool).Hide;
end;
Du kannst das Aussehen des Fadenkreuzes mit den Eigenschaften des Tools verändern, z.B. Size = 16, CrosshairPen.Color = clRed (geht nur wenn DrawingMode = tdmNormal ist).

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: TChart Probleme mit mehreren Achsen.

Beitrag von pluto »

Nun, als nächstes möchte ich halt das ganze in meinem WebSocketServer auf Konsolen Ebene einfügen. habe bereits das Beispiel nogui gefunden....
MFG
Michael Springwald

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: TChart Probleme mit mehreren Achsen.

Beitrag von pluto »

Ich habe um die Komponente IMMER ein großen Bogen gemacht. Aber es lohnt sich, sich damit einmal näher zu befassen.

Nun habe ich das Test Projekt, erfolgreich in meinen WebSocketServer einbauen können.

Im Anhang ist ein ScreenShot.
Dateianhänge
HeuteChart3.png
MFG
Michael Springwald

Antworten