TChart mit Logarithmischer Skala? [gelöst]
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
TChart mit Logarithmischer Skala? [gelöst]
Hallo,
Ich möchte gerne Preisstaffeln in einem Chart anzeigen. Dazu wollte ich TChart mit TChartAxisTransformations verbinden und dann die Werte füllen.
TLineSeries.AddXY(1, 1);
TLineSeries.AddXY(10, 0.9);
TLineSeries.AddXY(100, 0,7);
TLineSeries.AddXY(1000, 0,65);
Dann sollte TChart mir eine Kurve mit den Skalenpunkten
1 2 3 4.. 10 20 30 .. 100 200 300
Zeichen.
Irgendwie klappt das nicht. Die EXE rechnet sich zu tode und ich muss diese killen.
Als "Base" der Transformation habe ich mal 10 rein geschrieben, ich verstehe allerdings nicht was das genau bezweckt.
Weiß jemand ein Demo dafür wo ich was abschauen kann?
Grüße Markus.
Ich möchte gerne Preisstaffeln in einem Chart anzeigen. Dazu wollte ich TChart mit TChartAxisTransformations verbinden und dann die Werte füllen.
TLineSeries.AddXY(1, 1);
TLineSeries.AddXY(10, 0.9);
TLineSeries.AddXY(100, 0,7);
TLineSeries.AddXY(1000, 0,65);
Dann sollte TChart mir eine Kurve mit den Skalenpunkten
1 2 3 4.. 10 20 30 .. 100 200 300
Zeichen.
Irgendwie klappt das nicht. Die EXE rechnet sich zu tode und ich muss diese killen.
Als "Base" der Transformation habe ich mal 10 rein geschrieben, ich verstehe allerdings nicht was das genau bezweckt.
Weiß jemand ein Demo dafür wo ich was abschauen kann?
Grüße Markus.
Zuletzt geändert von MmVisual am Fr 15. Aug 2014, 10:55, insgesamt 1-mal geändert.
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: TChart mit Logarithmischer Skala?
Wie funktioniert denn dein Programm ohne die Transformations? Hängt das Programm da auch? Nimm den Debugger und gehe die von dir geschriebenen Prozeduren Schritt für Schritt durch.
Die logarithmische Darstellung ist in http://wiki.lazarus.freepascal.org/TACh ... s,_Fitting anhand eines Beispiels erläutert.
Base = 10 heißt, dass du den Zehner-Logarithmus verwendest, was in der Regel sinnvoll ist (aber keinesfalls eine Totschleife erzeugt...)
Die logarithmische Darstellung ist in http://wiki.lazarus.freepascal.org/TACh ... s,_Fitting anhand eines Beispiels erläutert.
Base = 10 heißt, dass du den Zehner-Logarithmus verwendest, was in der Regel sinnvoll ist (aber keinesfalls eine Totschleife erzeugt...)
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TChart mit Logarithmischer Skala?
Ohne Transformations hängt das nicht.
Also bisher habe ich zum Chart nur weniges programmiert, ich bin erst am Anfang.
Vielen Dank für den Link, das ist genau das was ich suchte.
Also bisher habe ich zum Chart nur weniges programmiert, ich bin erst am Anfang.
Vielen Dank für den Link, das ist genau das was ich suchte.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TChart mit Logarithmischer Skala?
Ich habe mir den Demo-Code kopiert und nun stecke ich Fest. Es klappt leider nicht so wie ich will.
Die logarithmische Skala will ich nicht links sondern unten haben. Wenn ich die Transformations ChartAxisTransformations1 von der LeftAxis lösche und in BottomAxis einfüge, dann stürzt Lazarus sofort ab. Abgesehen davon dass das absolut Scheiß**e ist, ist der Bug auch in dem verlinkten Dokument auch beschrieben.
Da steht: "What can we do against that? Each series has properties AxisIndexX and AxisIndexY. The transform can use this information to calculate the logarithms of the correct coordinates before the axis labels are updated. This solves our problem."
Aber irgendwie komme ich nicht dahinter was ich erst umstellen muss damit ich die Transformation auf die BottomAxis legen kann. Ich finde im Objektinspektor keine Unterschiede.
Hat jemand einen Tipp für mich?
Grüße Markus.
Die logarithmische Skala will ich nicht links sondern unten haben. Wenn ich die Transformations ChartAxisTransformations1 von der LeftAxis lösche und in BottomAxis einfüge, dann stürzt Lazarus sofort ab. Abgesehen davon dass das absolut Scheiß**e ist, ist der Bug auch in dem verlinkten Dokument auch beschrieben.
Da steht: "What can we do against that? Each series has properties AxisIndexX and AxisIndexY. The transform can use this information to calculate the logarithms of the correct coordinates before the axis labels are updated. This solves our problem."
Aber irgendwie komme ich nicht dahinter was ich erst umstellen muss damit ich die Transformation auf die BottomAxis legen kann. Ich finde im Objektinspektor keine Unterschiede.
Hat jemand einen Tipp für mich?
Grüße Markus.
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: TChart mit Logarithmischer Skala?
Falls ich nichts vergesse, sind folgende Schritte nötig, um die x-Achse logarithmisch darzustellen:
Im Anhang findest du eine kleine Demo mit deinen Werten auf logarithmischer x-Achse.
- eine Transformations-Komponente zum Formular hinzufügen
- LogarithmAxisTransform erzeugen mit Base = 10, Enabled = true
- die Transformations-Komponente der Eigenschaft Transformations der unteren Achse (BottomAxis) zuweisen - das bewirkt, dass die untere Achse der Transformation unterzogen wird.
- Bei der Series unbedingt die Eigenschaft AxisIndexX auf den Index der BottomAxis (weil das die transformierte Achse ist!) setzen, darauf bezieht sich der zitierte Text aus dem Tutorial. Dasselbe vorsorglich auch für die y-Achse entsprechend, aber nicht unbedingt nötig.
- Option aipGraphCoords aktivieren
- Tolerance auf einen kleinen Wert > 0 setzen, etwa 3 oder 5.
- Man kann mit MinLength/MaxLength experimentieren, damit die Markierungen besser ausfallen (MinLength = 30, maxLength = 100)
Im Anhang findest du eine kleine Demo mit deinen Werten auf logarithmischer x-Achse.
- Dateianhänge
-
TAChart hor-log-axis.zip
- (2.68 KiB) 75-mal heruntergeladen
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TChart mit Logarithmischer Skala?
Vielen Dank für die gute Beschreibung und das Demo! Ohne das hätte ich es wohl nicht hin bekommen.

Hier ein Bild vom Chart: Die Labels werden von der nachfolgenden Linie übermalt. Gibt es eine Möglichkeit dass erst die Kurve gezeichnet wird und dann die Labels oben drauf gesetzt werden?
Grüße Markus



Hier ein Bild vom Chart: Die Labels werden von der nachfolgenden Linie übermalt. Gibt es eine Möglichkeit dass erst die Kurve gezeichnet wird und dann die Labels oben drauf gesetzt werden?
Grüße Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: TChart mit Logarithmischer Skala?
Das wird etwas trickreich. Jedes Element des Chart hat eine Eigenschaft ZPosition, mit der die Zeichenreihenfolge bestimmt werden kann, also auch jede Series. Ein höherer Wert bedeutet, dass das entsprechende Objekt später gezeichnet wird, also über die bereits gezeichneten. Allerdings gehören die Marks zur Series und haben dieselbe ZPosition with die Series. Egal wie du ZPosition der beteiligten Series änderst, es wird immer irgendwelche Überschneidungen der Marks der einen Series durch die andere Series geben.
Ein Ausweg ist, jede Series zu klonen; das Original hat keine Labels, die Kopie hat welche; und das Original hat Verbindungslinien, die Kopie keine. Damit die Marks der Kopie nicht von den Linien überzeichnet werden kann, muss ZPosition der Kopie größer sein als die ZPositions der Originale.
"Klonen" klingt kompliziert, lässt sich aber, wenn man nicht zuviele Ansprüche an Verallgemeinerungen stellt, mit ein paar Zeilen Code erledigen:
Hier wird eine neue LineSeries erzeugt, und es werden alle wichtigen Eigenschaften aus dem Original (ASeries) rüberkopiert. Allerdings werden die Verbindungslinien und Symbole der Kopie ausgeschaltet, die Marks eingeschaltet (in dem Beispiel die y-Werte, wegen smsValue - das kannst du nach Belieben ändern). Die Farbe des labelhintergrunds wird aus der OriginalSeries übernommen. Zum Schluss wird die neu erzeugte Series in den Chart eingefügt und die
ZPosition so gewählt, dass sie sicher über den ZPositions der Originale liegt.
Diese Funktion rufst du auf, wenn die Original-Series erzeugt sind, z.B. im OnCreate-Ereignis des Formulars:
Ein Ausweg ist, jede Series zu klonen; das Original hat keine Labels, die Kopie hat welche; und das Original hat Verbindungslinien, die Kopie keine. Damit die Marks der Kopie nicht von den Linien überzeichnet werden kann, muss ZPosition der Kopie größer sein als die ZPositions der Originale.
"Klonen" klingt kompliziert, lässt sich aber, wenn man nicht zuviele Ansprüche an Verallgemeinerungen stellt, mit ein paar Zeilen Code erledigen:
Code: Alles auswählen
uses
TAChartUtils ...
function TForm1.CloneLineSeriesWithLabels(ASeries: TLineSeries): TLineSeries;
begin
Result := TLineSeries.Create(self);
Result.Source := ASeries.Source; // Dadurch werden die Daten automatisch in der Kopie verwendet
Result.LinePen.Style := psClear; // Verbindungslinie der Kopien ausschalten
Result.ShowPoints := false; // Datenpunkt-Symbole der Kopie ausschalten
Result.Marks.Style := smsValue; // Marks des Kopie aktivieren
Result.Marks.Format := '%.2f';
Result.Marks.LabelBrush.Color := ASeries.Marks.LabelBrush.Color;
// Farbe der Marks aus Original übernehmen, am besten dort einstellen
ASeries.Marks.Style := smsNone; // Marks des Originals ausschalten
Chart1.AddSeries(Result); // Kopie in den Chart einfügen
Result.ZPosition := Chart1.SeriesCount; // ... und über allen Originalkurven zeichnen
end;
ZPosition so gewählt, dass sie sicher über den ZPositions der Originale liegt.
Diese Funktion rufst du auf, wenn die Original-Series erzeugt sind, z.B. im OnCreate-Ereignis des Formulars:
Code: Alles auswählen
type
TForm1 = class(TForm)
Chart1: TChart;
Chart1LineSeries1: TLineSeries;
Chart1LineSeries2: TLineSeries;
RandomChartSource1: TRandomChartSource;
RandomChartSource2: TRandomChartSource;
procedure FormCreate(Sender: TObject);
private
{ private declarations }
ClonedLineSeries1: TLineSeries;
ClonedLineSeries2: TLineSeries;
function CloneLineSeriesWithLabels(ASeries: TLineSeries): TLineSeries;
public
{ public declarations }
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ClonedLineSeries1 := CloneLineSeriesWithLabels(Chart1LineSeries1);
ClonedLineSeries2 := CloneLineSeriesWithLabels(Chart1LineSeries2);
end;
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TChart mit Logarithmischer Skala?
Vielen Dank für den Tipp mit dem Kopieren
Ich musste in der Series noch AxisIndexX und AxisIndexY mit kopieren, ansonsten hängt sich die EXE auf sobald mehr als eine Kurve drin sind.
Auch habe ich noch "Result.Legend.Visible := False;" hinzugefügt.
So sieht das jetzt aus:
Auch die Achsbeschriftung hat nun eine spezielle Reihenfolge erhalten. Anbei der Quellcode von meinem Chart-Formular.
Aufgerufen wird der aus dem Hauptformular:
PS: Du kannst diesen Thread auch im Wiki-Artikel (von oben) verlinken, ich denke das kann vielen helfen.
Grüße Markus.

Ich musste in der Series noch AxisIndexX und AxisIndexY mit kopieren, ansonsten hängt sich die EXE auf sobald mehr als eine Kurve drin sind.
Auch habe ich noch "Result.Legend.Visible := False;" hinzugefügt.
So sieht das jetzt aus:
Auch die Achsbeschriftung hat nun eine spezielle Reihenfolge erhalten. Anbei der Quellcode von meinem Chart-Formular.
Aufgerufen wird der aus dem Hauptformular:
Code: Alles auswählen
procedure TfrmMain.ShowChart();
Var f: TfrmChart;
begin
f := TfrmChart.Create(Self);
f.Caption := 'Mein Chart *g*';
f.bWithLabel := True;
f.AddKurve('Hallo 1');
f.AddValue(1, 0.9);
f.AddValue(5, 0.85);
f.AddValue(10, 0.8);
f.AddValue(100, 0.651);
f.AddKurve('Gugus 2');
f.AddValue(1, 1.0);
f.AddValue(10, 0.95);
f.AddValue(25, 0.88);
f.ShowModal;
f.Free;
end;
Grüße Markus.
- Dateianhänge
-
- fchart.pas
- (5.71 KiB) 70-mal heruntergeladen
-
- fchart.lfm
- (1.76 KiB) 62-mal heruntergeladen
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: TChart mit Logarithmischer Skala? [gelöst]
Ein paar Punkte sind mir beim Überfliegen deines Codes aufgefallen:
- Du erzeugst die kopierten Plots im FormShow-Ereignis. Ich kenne dein restliches Programm nicht, aber wenn du dasselbe Formular mehrmals anzeigst und jedes mal FormShow aufgerufen wird, müllst du dir den Chart mit lauter identischen Kopien zu. Ich denke, es sollte auch gehen, wenn du die Kopie direkt nach dem Erzeugen einer Series anlegst (beim Ende von AddKurve), auch wenn die Series da noch gar keine Daten enthält. Aber das ganze ist ja so aufgebaut, dass sich Original und Kopie dieselbe Daten teilen - wenn du per AddValue Daten hinzufügst, stehen diese automatisch auch der Kopie zur Verfügung. Allerdings kommt nun die Z-Reihenfolge wieder durcheinander, wenn du die nächste Kurve per AddKurve erzeugst. Als Ausweg könntest du die kopierten Kurven kennzeichnen, z.B. indem du ihre Eigenschaft "Tag" auf einen beliebigen Wert setzt, dafür ist das da. Dann könntest du im FormShow alle Kurven durchlaufen und diejenigen mit diesem Tag in der ZPosition nach oben holen. Ein weiteres Problem sehe ich auch in der AddValue Funktion, weil du die zu betrachtende Kurve als die letzte im Chart annimmst - wegen der nun existierenden Kopie wäre jetzt die kopierte Kurve die letzte (ich glaube, dass dir diese Mehrdeutigkeit auch ohne meinen Vorschlag irgendwann um die Ohren fliegen wird...). Dazu würde ich vorschlagen, AddKurve in eine Funktion umzubauen, die die erzeugte (Original-) Series zurückgibt. Und bei AddValue könntest du die zu bearbeitende Kurve als Parameter angeben.
- Die Liste lstSeries ist unnötig, sie existiert im chart als Eigenschaft "Series". Die Anzahl der vorhandenen Kurven kann man abfragen mit "SeriesCount".
Nein, in dem englischen Tutorial werde ich nicht auf ein deutschsprachiges Forum verlinken. Aber ich habe ohnehin vor, demnächst ein Tutorial o.ä. zu "Runtime code with TAChart" zu machen, wo das gut reinpassen würde.MmVisual hat geschrieben:Du kannst diesen Thread auch im Wiki-Artikel (von oben) verlinken, ich denke das kann vielen helfen.
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TChart mit Logarithmischer Skala? [gelöst]
Vielen Dank für's drüber schauen.
Bei mir wird das FormShow Ereignis nur ein mal aufgerufen, das Formular ist Modal und der wird nach dem Schließen immer mit Free gelöscht. Dennoch habe ich eine Variable rein gebaut damit, wenn das FormShow doppelt kommt nicht noch ein zweites mal kopiert wird.
Jetzt da ich einigermaßen verstanden habe wie das mit den TChart.Series geht ist die List lstSeries in der Tat nicht mehr nötig. Allerdings nutze ich die noch im FormShow für das Kopieren der Originaldaten, daher ist es noch drin. Ich könnte zwar das ganze auch umbauen, wäre jedoch komplizierter. Es funktioniert so wie es soll, wenn es so eingesetzt wird wie vom Ersteller (mir) gedacht.
Hier der Original Code der das aufruft:
Das ganze ist im Projekt EleLa drin und zeigt für ein Bauteil alle hinterlegten Preisstaffeln. Damit man besser sehen kann ob bei einer größeren Stückzahl doch ein anderer Lieferant eventuell besser geeignet ist.
EleLa ist hier:
http://mmvisual.de/ >> EleLa
http://www.mikrocontroller.net/topic/265580
Und derzeit bin ich an der neuen Version V3 am schreiben:
http://www.mikrocontroller.net/topic/318610
Ein Tutorial wäre super, denn das TChart ist so mächtig, dass es sehr schwer ist da durch zu steigen. Ein Ablaufdiagramm, wie das ganze zusammenhängt wäre nicht schlecht.
TChart
+-Series: TLineSeries mit Beschreibung für was das gut ist
+-....
Ich denke daran hatte ich am meisten zu kämpfen.
Die speziellen Wünsche, wie z.B die Treppen-Darstellung habe ich dann schon herausgefunden.
Grüße Markus
Bei mir wird das FormShow Ereignis nur ein mal aufgerufen, das Formular ist Modal und der wird nach dem Schließen immer mit Free gelöscht. Dennoch habe ich eine Variable rein gebaut damit, wenn das FormShow doppelt kommt nicht noch ein zweites mal kopiert wird.
Jetzt da ich einigermaßen verstanden habe wie das mit den TChart.Series geht ist die List lstSeries in der Tat nicht mehr nötig. Allerdings nutze ich die noch im FormShow für das Kopieren der Originaldaten, daher ist es noch drin. Ich könnte zwar das ganze auch umbauen, wäre jedoch komplizierter. Es funktioniert so wie es soll, wenn es so eingesetzt wird wie vom Ersteller (mir) gedacht.
Hier der Original Code der das aufruft:
Code: Alles auswählen
procedure TfrmMain.ShowPriceChart(iBauteilLager_ID: Integer);
Var f: TfrmChart;
q: TZReadOnlyQuery;
iAdrID: Integer;
s: String;
begin
ErrMessagesAdd('ShowPriceChart');
q := CreateTZReadOnlyQuery();
q.SQL.Text := 'SELECT b.Adr_ID, b.EPMenge, b.EPreis, b.BestellNr, a.Bezeichnung';
q.SQL.Add('FROM bauteiladr b');
q.SQL.Add('LEFT JOIN adr a ON (a.ID=b.Adr_ID)');
q.SQL.Add('WHERE b.BauteilLager_ID=' + IntToStr(iBauteilLager_ID));
q.SQL.Add('ORDER BY Bezeichnung, EPMenge');
q.Open;
If q.IsEmpty Then // Keine Daten !!!
Begin
q.Close;
q.Free;
ErrMessagesRemove();
Exit;
end;
f := TfrmChart.Create(Self);
f.Caption := cboLagerCase.Text;
f.bWithLabel := True;
iAdrID := -1;
While Not q.EOF Do
Begin
If iAdrID <> q.FieldByName('Adr_ID').AsInteger Then
Begin
iAdrID := q.FieldByName('Adr_ID').AsInteger;
s := q.FieldByName('Bezeichnung').AsString;
If q.FieldByName('BestellNr').AsString <> '' Then
s := s + ': ' + q.FieldByName('BestellNr').AsString;
f.AddKurve(s);
end;
f.AddValue(q.FieldByName('EPMenge').AsInteger, q.FieldByName('EPreis').AsFloat);
q.Next;
end;
q.Close;
q.Free;
f.ShowModal;
f.Free;
ErrMessagesRemove();
end;
EleLa ist hier:
http://mmvisual.de/ >> EleLa
http://www.mikrocontroller.net/topic/265580
Und derzeit bin ich an der neuen Version V3 am schreiben:
http://www.mikrocontroller.net/topic/318610
Ein Tutorial wäre super, denn das TChart ist so mächtig, dass es sehr schwer ist da durch zu steigen. Ein Ablaufdiagramm, wie das ganze zusammenhängt wäre nicht schlecht.
TChart
+-Series: TLineSeries mit Beschreibung für was das gut ist
+-....
Ich denke daran hatte ich am meisten zu kämpfen.
Die speziellen Wünsche, wie z.B die Treppen-Darstellung habe ich dann schon herausgefunden.
Grüße Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: TChart mit Logarithmischer Skala? [gelöst]
Den Satz verstehe ich nicht. Aber vielleicht wird das in der "offiziellen" Dokumentation behandelt: http://wiki.lazarus.freepascal.org/TACh ... umentationMmCisual hat geschrieben:+-Series: TLineSeries mit Beschreibung für was das gut ist
Und vielleicht helfen dir auch die vielen Demos, die mit TAChart mitkommen und in http://wiki.lazarus.freepascal.org/TAChart_Demos zusammengefasst sind.
Und das weiter oben zitierte Tutorial ist nur eins von vielen: http://wiki.lazarus.freepascal.org/TACh ... umentation
Ja, es stimmt, TAChart ist relativ schwierig, aber m.E. sehr gut dokumentiert.
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TChart mit Logarithmischer Skala? [gelöst]
Das einzelne Detail ist schon gut dokumentiert. Was fehlt ist jedoch die Übersicht wie die ganzen Daten und Funktionen zusammen hängen.
z.B. so eine Baumansicht/Tabelle
Was man mit dem Chart so alles anstellen kann ist hier schon gut zu sehen: http://wiki.lazarus.freepascal.org/TAChart_Demos
Beim Lazarus gibt es beim Reiter Chart viele Zusatzkomponenten die man auf die Form ziehen kann. Wenn ich das jetzt zum ersten mal sehe, dann sehe ich nur einen Wald. Da wäre eine einfache Tabelle hilfreich in der jedes der Kompos kurz beschrieben ist, was man damit anstellen kann.
Was Chart betrifft bin ich ein absoluter Anfänger und ich schreibe das, was ein Anfänger benötigt um damit leichter starten zu können, zumindest was mir leichter fallen würde. Delphi/Lazarus progge ich schon seit 15 Jahren, ganz selten auch Charts - was anhand Demos dann irgendwann auch immer irgendwie geklappt hat.
z.B. so eine Baumansicht/Tabelle
Code: Alles auswählen
TChart
+--- AxisList : Tirgendwas Funktion so und so
| +----- Minor : Tirgendwas Funktion so und so
+--- BoderAxis : Tirgendwas Funktion so und so
| +----- Transformations : Tirgendwas Funktion so und so
+--- Series : Tirgendwas Funktion so und so
+----- Transformation Tirgendwas und malt so und so
+----- Transformation Tirgendwas und malt so und so
+----- Transformation Tirgendwas und malt so und so
+----- Transformation Tirgendwas und malt so und so
+----- Transformation Tirgendwas und malt so und so
Beim Lazarus gibt es beim Reiter Chart viele Zusatzkomponenten die man auf die Form ziehen kann. Wenn ich das jetzt zum ersten mal sehe, dann sehe ich nur einen Wald. Da wäre eine einfache Tabelle hilfreich in der jedes der Kompos kurz beschrieben ist, was man damit anstellen kann.
Was Chart betrifft bin ich ein absoluter Anfänger und ich schreibe das, was ein Anfänger benötigt um damit leichter starten zu können, zumindest was mir leichter fallen würde. Delphi/Lazarus progge ich schon seit 15 Jahren, ganz selten auch Charts - was anhand Demos dann irgendwann auch immer irgendwie geklappt hat.
EleLa - Elektronik Lagerverwaltung - www.elela.de
Re: TChart mit Logarithmischer Skala? [gelöst]
Für jede Anregung bin ich dankbar. Allerdings meine ich, dass man schon fast alles wissen muss, um die genannte Baumansicht zu verstehen. Auf die vielen Komponenten in der Komponentenpalette kann man nicht verzichten, es drückt sich darin die Komplexität der Bibliothek aus. Man könnte natürlich alles in einer einzigen Komponente zusammenfassen, aber das zerstört die Baukasten-Idee, die hinter allem steckt, und der Anfänger wird dann von einer Unzahl von Properties erschlagen.
Wichtig ist, dem Anfänger einen Einstieg zu zeigen, das habe ich damals mit den genannten Tutorials versucht. Immerhin ist das zumindest bei dir gelungen, deine Chart-Aufgabe ist gelöst, und das nächste mal wird es bestimmt einfacher.
Wichtig ist, dem Anfänger einen Einstieg zu zeigen, das habe ich damals mit den genannten Tutorials versucht. Immerhin ist das zumindest bei dir gelungen, deine Chart-Aufgabe ist gelöst, und das nächste mal wird es bestimmt einfacher.
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TChart mit Logarithmischer Skala? [gelöst]
>man schon fast alles wissen muss, um die genannte Baumansicht zu verstehen.
Es soll auch nicht zu kompliziert beschrieben sein, nur grob. Kein Beschreibung der detaillierten Properties, denn die sind schon in den jeweiligen Wikis schon beschrieben. Genau dieser Zusammenhang fehlt und ist für den Start wichtig. Also auch keine Romane schreiben, die Baum-Tabelle soll einfach und übersichtlich bleiben. Details zu einzelnen Punkten könnten wiederum an anderer Position weiter unten beschrieben werden.
>aber das zerstört die Baukasten-Idee
Nein, nichts anders Programmieren. Das Chart-Baukastensystem ist genial. Nur liegt es noch daran dieses Baukasten-System auch für andere Nutzbar zu machen indem es, so wie oben mit einer Baumansicht, dokumentiert wird. Großteils ist das auch schon hier geschehen: http://wiki.lazarus.freepascal.org/TAChart_Demos
>Immerhin ist das zumindest bei dir gelungen, deine Chart-Aufgabe ist gelöst
Ja, ist gelöst, aber nur Dank Deiner Hilfe
und diesem Forum.
Noch ein Tipp:
Man kann viele verschiedene Series Typen hinzufügen: Hier wäre eine Tabelle Hilfreich mit dem Typ der Series (wie auswählbar) und einer Grafik nebenan wie das aussehen könnte.
PS: Mein EleLa habe ich auch komplett dokumentiert: http://mmvisual.de/Hilfe/EleLa/Index.htm
Jede Funktion beschrieben, mit Bilder, sogar die Datenbankstruktur die dahinter steckt und Tutorials wie man die DB einrichtet, 55 HTM-Seiten. Ich erhalte sehr wenige Fragen für irgend welche Funktionen.
Es soll auch nicht zu kompliziert beschrieben sein, nur grob. Kein Beschreibung der detaillierten Properties, denn die sind schon in den jeweiligen Wikis schon beschrieben. Genau dieser Zusammenhang fehlt und ist für den Start wichtig. Also auch keine Romane schreiben, die Baum-Tabelle soll einfach und übersichtlich bleiben. Details zu einzelnen Punkten könnten wiederum an anderer Position weiter unten beschrieben werden.
>aber das zerstört die Baukasten-Idee
Nein, nichts anders Programmieren. Das Chart-Baukastensystem ist genial. Nur liegt es noch daran dieses Baukasten-System auch für andere Nutzbar zu machen indem es, so wie oben mit einer Baumansicht, dokumentiert wird. Großteils ist das auch schon hier geschehen: http://wiki.lazarus.freepascal.org/TAChart_Demos
>Immerhin ist das zumindest bei dir gelungen, deine Chart-Aufgabe ist gelöst
Ja, ist gelöst, aber nur Dank Deiner Hilfe


Noch ein Tipp:
Man kann viele verschiedene Series Typen hinzufügen: Hier wäre eine Tabelle Hilfreich mit dem Typ der Series (wie auswählbar) und einer Grafik nebenan wie das aussehen könnte.
PS: Mein EleLa habe ich auch komplett dokumentiert: http://mmvisual.de/Hilfe/EleLa/Index.htm
Jede Funktion beschrieben, mit Bilder, sogar die Datenbankstruktur die dahinter steckt und Tutorials wie man die DB einrichtet, 55 HTM-Seiten. Ich erhalte sehr wenige Fragen für irgend welche Funktionen.
EleLa - Elektronik Lagerverwaltung - www.elela.de