TAChart mit zwei y-Achsen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

TAChart mit zwei y-Achsen

Beitrag von photor »

Hallo Forum,

Zitat von wp_xyz aus Thread: TChart MaxWert: "Und wenn's nicht klappt, hier fragen." :wink:

ich versuche gerade 2 LineSeries, die 2 unterschiedliche Größen repräsentieren, in ein TAChart zu packen (x-Achse ist identisch; deshalb bietet sich das an). Ich versuche mich an dieses Tutorial zu halten. Es klappt so weit, dass beide LineSeries und beide y-Achsen (eine links, eine rechts) gezeichnet werden - allerdings noch mit dem gleichen Wertebereich, was hässlich aussieht und nicht nötig wäre.

Ich hänge also an der Stelle, wo ich beide y-Achsen einen jeweils getrennten Wertebereich (y_min, y_max) zugewiesen bekommen sollten. Das ist im oben erwähnten Tutorial (für mich) etwas undurchsichtig gelöst. :?

Wie mache ich das am einfachsten. Gibt es ein besseres Beispiel/Tutorial? Wenn nötig, poste ich selbstverständlich auch Code.

Ciao,

Photor

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

Re: TAChart mit zwei y-Achsen

Beitrag von wp_xyz »

Ich sehe jetzt auf die Schnelle nicht, welches Tutorial du meinst, aber dieses hier (http://wiki.lazarus.freepascal.org/TACh ... is,_Legend) habe ich speziell für den Fall von Achsen links und rechts geschrieben. Wichtig ist, dass jede vertikale Achse eine eigene AutoScale-Transformation erhält, damit die beiden verschiedenen y-Intervalle auf denselben internen Zeichenbereich abgebildet werden.

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: TAChart mit zwei y-Achsen

Beitrag von photor »

Hallo wp_xyz,

Danke für den Hinweis: eine AxisTransformation ist offensichtlich nötig. Ich habe beiden y-Achsen jeweils eine zugeordnet und das funktioniert auch:
  • die linke Achse skalliert von 2.5 bis 25
  • die rechte Achse zeigt von 17 bis 39
Die Kurven sind jeweils vom unteren Rand zum oberen gezeichnet - soweit das, was Autoscale machen soll. Der Schönheit wegen würde ich gerne jeweils einen etwas größeren Bereich einstellen (ca. 2 oder 5% größer). Ist das machbar?

:idea: Bei den Transformations gibt es MaxValue und MinValue. Werde ich testen.

Ciao,

Photor

PS: spannenderweise kann ich die AxisTransformations im Objectinspector nicht dem speziellen Chart oder gar der Achse zuweisen. Dort im Baum werden sie direkt als Kind von Form1 angezeigt. :?

PS2: genau das Tutorial meinte ich auch.

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

Re: TAChart mit zwei y-Achsen

Beitrag von wp_xyz »

photor hat geschrieben:Ich habe beiden y-Achsen jeweils eine zugeordnet und das funktioniert auch:
  • die linke Achse skalliert von 2.5 bis 25
  • die rechte Achse zeigt von 17 bis 39
Die Kurven sind jeweils vom unteren Rand zum oberen gezeichnet - soweit das, was Autoscale machen soll. Der Schönheit wegen würde ich gerne jeweils einen etwas größeren Bereich einstellen (ca. 2 oder 5% größer). Ist das machbar?

Wenn du damit meinst, dass z.B. die linke Achse nicht von 2.5 bis 25, sondern von 0 bis 30 verlaufen soll, dann musst du den Range der betreffenden Achse ändern - hier gibt es Min und Max, wobei man die Werte noch mit UseMin und UseMax "scharf" schalten muss. Die Beschriftung der linken Achse läuft dann von 0 bis 30.

photor hat geschrieben: :idea: Bei den Transformations gibt es MaxValue und MinValue. Werde ich testen.

Nein, das ist etwas anderes. Das betrifft die "unsichtbare" Achse hinter dem Diagramm, so wie bei Millimeter-Papier die Millimeter-Einteilung. Stell dir vor, du willst auf Millimeterpapier zwei Kurven zeichnen mit Achsen links und rechts. Das Diagramm soll 10 cm hoch werden, die eine Kurve, die der linken Achse zugeordnet ist und Werte zwischen 2.5 und 25 überstreicht, soll die untere Hälfte des Plots einnehmen, die Kurve, die zur rechten Achse gehört und Werte zwischen 17 und 39 überstreicht, die obere Hälfte. Dann machst du inituitiv genau dasselbe wie die beiden AutoScale-Transformations: Der Wert 2.5 der linken Achse kommt ans untere Ende des Plots (0 cm), der Wert 25 in die Mitte (5 cm), der Wert 17 der rechten Achse auch in die Mitte (5cm), der Wert 49 kommt ans obere Ende (10 cm). Die "linke" Autoscale-transformation bildet die "Achsenkoordinaten" (= das was an der Achse steht) 2.5...25 auf die "Graph-Koordinaten" (= die cm oder mm auf dem Millimeterpapier) 0..5 cm ab. Analog für die rechte Transformation.

Die 0 cm und 5 cm dieses Beispiels entsprechen dem MinValue und MaxValue der linken AutoscaleTransform, 5cm und 10cm analog für die rechte.

In deinem Beispiel sind MinValue und MaxValue 0 bzw 1, und zwar für beide Transformationen. Daher überstreichen beide Kurven denselben Bereich des "Millimeterpapiers". Wenn du z.B. die linke Transform unverändert lässt, aber bei der rechten Minvalue auf 1 und MaxValue auf 2 setzt, dann bewegen sich beide Kurven auseinander, die linke Kurve nimmt nur noch die untere Hälfte des Diagramms ein, die recht die obere Hälfte.

Du kannst dir in diesem Zusammehang auch die beiden "Panes"-Demos im Ordner "demo" von TAChart ansehen, da wird das auf drei Panels angewendet. Panes-2 ist etwas komplexer, weil hier die Übergänge mit der Maus verschoben werden können.

photor hat geschrieben:spannenderweise kann ich die AxisTransformations im Objectinspector nicht dem speziellen Chart oder gar der Achse zuweisen. Dort im Baum werden sie direkt als Kind von Form1 angezeigt. :?

Das verstehe ich nicht. Ja, im Baum stehen die Transformations unter dem Formular - weiß gar nicht warum. Aber wichtig ist das, was bei der Achsen-Eigenschaft "Transformations" eingetragen ist.

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: TAChart mit zwei y-Achsen

Beitrag von photor »

Moin wp_xyz,

Danke für Deine Anregungen. Ich habe mit Deinen Infos (und sehr viel <CTRL>+<SPACE>) programmiert und heraus gekommen ist folgendes, das zumindest schonmal grob das macht, was ich mir vorgestellt hatte:

Code: Alles auswählen

 
procedure TForm1.PlotPowerTorque;
var
  cnt, nrows : integer;
  revs, pow, torq : double;
  LabelColor : TColor;
begin
  with ChartPower do
  begin
    ClearSeries;
    LabelColor := clRed;
 
    Title.Visible := True;
    Title.Text.Text := 'Power and Torque';
 
    BottomAxis.Title.Caption := 'Revs [1/min]';
    BottomAxis.Title.Visible := True;
    BottomAxis.Grid.Color := clSilver;
    BottomAxis.Marks.LabelFont.Orientation := 900;
 
    { ToDo -oPhotor -cFeature 2: Power and Torque in one chart }
 
    { left axis = Power axis }
    with AxisList.Axes[0] do
    begin
      Range.Max := 1.02 * RoadLoadData.p_max;
      Range.UseMax := True;
      Range.Min := 0.0;
      Range.UseMin := True;
      LabelColor := clRed;
      Title.Caption := 'Power [kW]';
      Title.Visible := True;
      Title.LabelFont.Orientation := 900;
      Title.LabelFont.Color := LabelColor;
      Marks.LabelFont.Color := LabelColor;
      Grid.Color := LabelColor;
    end;
    { right axis = Torque axis }
    with AxisList.Axes[2] do
    begin
      Range.Max := 1.02 * RoadLoadData.m_max;
      Range.UseMax := True;
      Range.Min := 10.0;
      Range.UseMin := True;
      LabelColor := clGreen;
      Title.Caption := 'Torque [Nm]';
      Title.Visible := True;
      Title.LabelFont.Orientation := 900;
      Title.LabelFont.Color := LabelColor;
      Marks.LabelFont.Color := LabelColor;
      Grid.Color := LabelColor;
    end;
 
    { Legend }
    Legend.Visible := True;
 
    Color := clWhite;
 
    { create and fill LineSeries for power and torque and fill with data }
    CreateLineSeriesPower;
 
    with LineSeriesPower do
    begin
      Clear;
      AxisIndexY := 0;
 
      with StringGridPowerTorque do
      begin
        nrows := RowCount;
        for cnt:=1 to nrows-1 do
        begin
          revs := StrToFloat(Cells[0,cnt]);
          pow := StrToFloat(Cells[1,cnt]);
          { power diagram }
          AddXY(revs,pow);
        end;
      end;
      Active := True;
    end;
 
    with ChartPowerLineSeries1 do
    begin
      Clear;
      AxisIndexY := 2;
 
      with StringGridPowerTorque do
      begin
        nrows := RowCount;
        for cnt:=1 to nrows-1 do
        begin
          revs := StrToFloat(Cells[0,cnt]);
          torq := StrToFloat(Cells[2,cnt]);
          { torque diagram }
          AddXY(revs,torq);
        end;
      end;
      Active := True;
    end;
    Update;
  end;
end;
 

Die Benamung ist noch nicht ganz konsistent. Aussehen tut das in etwa so wie unten (wenn der Anhang ordentlich mitkommt):

Ciao,

Photor
Dateianhänge
Lazarus-TChart.png

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

Re: TAChart mit zwei y-Achsen

Beitrag von wp_xyz »

wp_xyz hat geschrieben:
photor hat geschrieben:Ich habe beiden y-Achsen jeweils eine zugeordnet und das funktioniert auch:
  • die linke Achse skalliert von 2.5 bis 25
  • die rechte Achse zeigt von 17 bis 39
Die Kurven sind jeweils vom unteren Rand zum oberen gezeichnet - soweit das, was Autoscale machen soll. Der Schönheit wegen würde ich gerne jeweils einen etwas größeren Bereich einstellen (ca. 2 oder 5% größer). Ist das machbar?

Wenn du damit meinst, dass z.B. die linke Achse nicht von 2.5 bis 25, sondern von 0 bis 30 verlaufen soll, dann musst du den Range der betreffenden Achse ändern - hier gibt es Min und Max, wobei man die Werte noch mit UseMin und UseMax "scharf" schalten muss. Die Beschriftung der linken Achse läuft dann von 0 bis 30.

Hier sollte ich noch erwähnen, dass man mit diesem Verfahren natürlich die automatische Skalierung der Achse aufgibt. Wenn deine Daten aus irgendeinem Grund plötzlich bis 35 gehen, das Achsenmaximum aber bei 30 festgezurrt ist, wird gnadenlos alles über 30 abgeschnitten. Ein flexiblerer Weg, der Series oben und unten etwas mehr Platz zu spendieren, ist mit der Eigenschaft Margins des Charts möglich: Hier gibst du die Pixel an, die zwischen den Chart-Extrema und der Achsengrenze liegen sollen. Im Unterschied zu Excel ist der 1.Wert der Achsenbeschriftung immer (?) eine "schöne" Zahl. Probier's einfach mal aus.

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: TAChart mit zwei y-Achsen

Beitrag von photor »

wp_xyz hat geschrieben:
photor hat geschrieben: :idea: Bei den Transformations gibt es MaxValue und MinValue. Werde ich testen.

Nein, das ist etwas anderes. Das betrifft die "unsichtbare" Achse hinter dem Diagramm, so wie bei Millimeter-Papier die Millimeter-Einteilung. Stell dir vor, du willst auf Millimeterpapier zwei Kurven zeichnen mit Achsen links und rechts. Das Diagramm soll 10 cm hoch werden, die eine Kurve, die der linken Achse zugeordnet ist und Werte zwischen 2.5 und 25 überstreicht, soll die untere Hälfte des Plots einnehmen, die Kurve, die zur rechten Achse gehört und Werte zwischen 17 und 39 überstreicht, die obere Hälfte. Dann machst du inituitiv genau dasselbe wie die beiden AutoScale-Transformations: Der Wert 2.5 der linken Achse kommt ans untere Ende des Plots (0 cm), der Wert 25 in die Mitte (5 cm), der Wert 17 der rechten Achse auch in die Mitte (5cm), der Wert 49 kommt ans obere Ende (10 cm). Die "linke" Autoscale-transformation bildet die "Achsenkoordinaten" (= das was an der Achse steht) 2.5...25 auf die "Graph-Koordinaten" (= die cm oder mm auf dem Millimeterpapier) 0..5 cm ab. Analog für die rechte Transformation.

Die 0 cm und 5 cm dieses Beispiels entsprechen dem MinValue und MaxValue der linken AutoscaleTransform, 5cm und 10cm analog für die rechte.

In deinem Beispiel sind MinValue und MaxValue 0 bzw 1, und zwar für beide Transformationen. Daher überstreichen beide Kurven denselben Bereich des "Millimeterpapiers". Wenn du z.B. die linke Transform unverändert lässt, aber bei der rechten Minvalue auf 1 und MaxValue auf 2 setzt, dann bewegen sich beide Kurven auseinander, die linke Kurve nimmt nur noch die untere Hälfte des Diagramms ein, die recht die obere Hälfte.


Kleiner Nachtrag: ich habe jetzt mal noch mit dieser Option gespielt.
  • bei den AutoScaleTransformations kann ich für Min/MaxValue jeweils keine Kommazahlen eintragen (hätte erwartet, dass 0.25 und 0.75 für den Bereich 25% bis 75% möglich wäre). Das ist kein großes Problem, da ich einfach die linke Achse von 0..5 und die rechte von 2..4 eingestellt habe, um die zweite Kurve im Bereich von 40% bis 80% der ersten Kurve darzustellen. Das klappt sehr gut.
  • als Zuckerkirsche auf dem Sahnehäubchen der Sahneeiskugel wünschte ich mir noch, dass auch nur der Bereich auf der rechten Seite mit einer Achseneinteilung versehen wird (der Bereich geht sonst z.B. in den negativen Bereich, was technisch/physikalisch keinen Sinn machen würde)

Das nur als Nachtrag im wesentlichen für's Archiv - wenn sonst noch jemand sucht.

Ciao,

Photor

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

Re: TAChart mit zwei y-Achsen

Beitrag von wp_xyz »

photor hat geschrieben:bei den AutoScaleTransformations kann ich für Min/MaxValue jeweils keine Kommazahlen eintragen (hätte erwartet, dass 0.25 und 0.75 für den Bereich 25% bis 75% möglich wäre).

Also das verstehe ich nicht, das sind Double-Werte. Und in dem panes demo ((lazarus)/components/tachart/demo/panes) stehen auch Kommazahlen drinnen. Und ich habe gerade getestet, der Property-Editor kommt sowohl mit Komma als auch Punkt klar. Was passiert denn, wenn du Kommazahlen eingibst?

Dein Workaround ist natürlich völlig ok. MinValue/MaxValue können in beliebigen Einheiten eingetragen werden.

Jede Achse hat unter Marks noch ein Property Range, in dem du - wieder per UseMin und UseMax - festnageln kannst, in welchem Intervall Labels geschrieben werden sollen (wenn ich mich recht erinnere). Und es gibt auch noch Marks.AtDataOnly. Schau dir das panes-2 demo an und klicke die diversen Checkboxen am linken Rand an.

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: TAChart mit zwei y-Achsen

Beitrag von photor »

Moin wp_xyz,

wp_xyz hat geschrieben:Also das verstehe ich nicht, das sind Double-Werte. Und in dem panes demo ((lazarus)/components/tachart/demo/panes) stehen auch Kommazahlen drinnen. Und ich habe gerade getestet, der Property-Editor kommt sowohl mit Komma als auch Punkt klar. Was passiert denn, wenn du Kommazahlen eingibst?


Nochmal getestet: Es hat offensichtlich mit dem Format zu tun:
  1. gebe ich ein "." (Punkt) ein, bekomme ich ein '"0.5" is not a valid float' ("float" heißt auch KEIN "integer" :!: ; hätte mir auffallen können :roll: )
  2. gebe ich ein "," (Komma) ein, ist alles OK
Liegt also am Darstellungsformat für Floats. Bisher hatte ich damit noch keine Probleme.[1]

wp_xyz hat geschrieben:Jede Achse hat unter Marks noch ein Property Range, in dem du - wieder per UseMin und UseMax - festnageln kannst, in welchem Intervall Labels geschrieben werden sollen (wenn ich mich recht erinnere). Und es gibt auch noch Marks.AtDataOnly. Schau dir das panes-2 demo an und klicke die diversen Checkboxen am linken Rand an.


Da werde ich mich nochmal tiefer eingraben; es gibt wohl noch eine Menge Möglichkeiten mehr :)
(BTW: probiert -> tut -> cool 8) )

Ciao,

Photor


[1]Remark: ich habe seit kurzem (= letztes Update :?: ) beobachtet, dass im Eigenschaften-Fenster auch <BACKSPACE> und <DELETE> sich eigenartig verhalten. Ich glaube, ich muss dem nachgehen.

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

Re: TAChart mit zwei y-Achsen

Beitrag von wp_xyz »

OK, ich seh jetzt, dass du ziemlich alte Lazarus/FPC-Versionen verwendest. Ich habe mal im Source-Code gewühlt und bei mir (Laz trunk/fpc 3.0) in unit PropEdit (components/ideintf) beim TFloatPropertyEditor folgenden Code gefunden:

Code: Alles auswählen

procedure TFloatPropertyEditor.SetValue(const NewValue: ansistring);
var
  FS: TFormatSettings;
  NewFloat: Extended;
begin
  //writeln('TFloatPropertyEditor.SetValue A ',NewValue,'  ',StrToFloat(NewValue));
  FS := DefaultFormatSettings;
  FS.DecimalSeparator := '.'; //after all, this is Pascal, so we expect a period
  if not TryStrToFloat(NewValue, NewFloat, FS) then
    //if this failed, assume the user entered DS from his current locale
    NewFloat := StrToFloat(NewValue, DefaultFormatSettings);
  SetFloatValue(NewFloat);
  //writeln('TFloatPropertyEditor.SetValue B ',GetValue);
end;

Schon die Kommentare zeigen, dass zunächst der Dezimalpunkt geprüft wird (Quelltext!) und ggfs nochmals mit dem Trenner der Ländereinstellungen.

Noch bei Laz 1.60/fpc 3.0 dagegen findet man an dieser Stelle nur

Code: Alles auswählen

procedure TFloatPropertyEditor.SetValue(const NewValue: ansistring);
begin
  //writeln('TFloatPropertyEditor.SetValue A ',NewValue,'  ',StrToFloat(NewValue));
  SetFloatValue(StrToFloat(NewValue));
  //writeln('TFloatPropertyEditor.SetValue B ',GetValue);
end


StrToFloat benutzt den Dezimaltrenner der Ländereinstellungen, also das Komma (in D).

Womit wir wieder bei dem leidigen Thema Dezimalpunkt/Dezimalkomma wären...

Also: auf Laz 1.8 warten, oder grundsätzlich im Objektinspektor Floats so eingeben, wie in den Ländereinstellungen festgelegt. Leider ist das ein Bruch mit dem Quelltext, wo bei Float-Konstanten der Punkt verwendet werden muss... Allerdings meine ich, dass das nicht ganz konsequent durchgehalten ist, ich behaupte, es gibt einige Komponenten, die einen eigenen FloatPropertyEditor haben und nur den Punkt akzeptieren.

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: TAChart mit zwei y-Achsen

Beitrag von photor »

Moin wp_xyz,

wp_xyz hat geschrieben:OK, ich seh jetzt, dass du ziemlich alte Lazarus/FPC-Versionen verwendest.
[...]
Noch bei Laz 1.60/fpc 3.0 dagegen findet man an dieser Stelle nur
[...]
Womit wir wieder bei dem leidigen Thema Dezimalpunkt/Dezimalkomma wären...

Danke für Deine Mühe, im Code zu wühlen.
wp_xyz hat geschrieben:Also: auf Laz 1.8 warten, oder grundsätzlich im Objektinspektor Floats so eingeben, wie in den Ländereinstellungen festgelegt. Leider ist das ein Bruch mit dem Quelltext, wo bei Float-Konstanten der Punkt verwendet werden muss... Allerdings meine ich, dass das nicht ganz konsequent durchgehalten ist, ich behaupte, es gibt einige Komponenten, die einen eigenen FloatPropertyEditor haben und nur den Punkt akzeptieren.

Wenn man das weiß, kann man sich damit arrangieren. Und ich ärgere mich, dass ich es nicht direkt mit dem Komma probiert habe (schließlich hätte man es aus der Fehlermeldung lesen können). OK, eine Würg-Around habe ich gefunden.

Für Arch Linux finde ich aktuell folgende Pakete Lazarus betreffend:

Code: Alles auswählen

 
[photor@Picard ~]$ pacaur -Ss lazarus
community/fpc-src 3.0.0-1 [Installiert]
    Sources for the FreePascal compiler (required by the Lazarus IDE)
community/lazarus 1.6.0-2 [Installiert]
    Delphi-like IDE for FreePascal common files
community/lazarus-gtk2 1.6.0-2 [Installiert]
    Delphi-like IDE for FreePascal gtk2 version
community/lazarus-qt 1.6.0-2
    Delphi-like IDE for FreePascal qt version
aur/locator 0.1.1-6 (3, 0,12)
    Unix command locate front-end. A Linux alternative to voidtool's Everything, written in Lazarus.
aur/guipdftk 0.33-3 (25, 0,01)
    GUI for PDFTK, lazarus-gtk2 needed
aur/fpc-src-svn 3.1.1.r32385-1 (4, 0,00)
    Sources for the FreePascal compiler (required by the Lazarus IDE)
aur/lazpaint-gtk2 6.4.1-3 (2, 0,00)
    Image editor, like PaintBrush or Paint.Net, written in Lazarus (Free Pascal).
aur/lazpaint-qt4 6.4.1-3 (1, 0,00)
    Image editor, like PaintBrush or Paint.Net, written in Lazarus (Free Pascal). 

Installiert ist die Version von 1.6.0 Lazarus. Auch im AUR (Arch User Repository) gibt es keine aktuellere Version. D.h. WARTEN! (Ich will nichts am System vorbei installieren, da das später eigentlich immer Probleme macht).

Ciao,

Photor

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

Re: TAChart mit zwei y-Achsen

Beitrag von wp_xyz »

Das Script von getlazarus (http://www.getlazarus.org/setup/?download#linux) installiert Laz trunk/fpc trunk aus den Quellen ins Home-Verzeichnis und lässt das System unangetastet, kein apt-get & Co, keine Probleme mit Schreibrechten. Wenn du's nicht mehr willst, einfach Ordner löschen. Hat bisher bei mir zu 100% funktioniert. TAChart und einige andere Standardpackages musst du in Lazarus über "Package"/"Installierte Packages einrichten" nachinstallieren.

Antworten