Note zu TChart

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

Note zu TChart

Beitrag von photor »

Hallo Forum

ich sehe hier folgende Note, wenn ich ein Projekt mit TChart compiliere:

Code: Alles auswählen

Note: Call to subroutine "function TChartAxis.GetMarks:TChartAxisMarks;" marked as inline is not inlined
Note: Call to subroutine "function TChartAxis.GetMarks:TChartAxisMarks;" marked as inline is not inlined
Hier der dazugehörige Code:

Code: Alles auswählen

{ -- for plotting things -- }
procedure TMainForm.AxisLabels(Axis: TChartAxis; IsLog: Boolean);
begin
  if IsLog then
  begin
    Axis.Marks.Source := ListChartSource;			// <----- hier
    Axis.Minors.Add.Intervals.Count := 9;
//    Axis.Minors.Add.Intervals.Options := [aipUseCount];
    Axis.Minors.Add.Grid.Color := clSilver;
  end
  else
  begin
    Axis.Marks.Source := nil;						// <----- und hier
//    Axis.Intervals.Options := Axis.Intervals.Options - [aipGraphCoords];
    Axis.Intervals.MaxLength := 50;
    Axis.Intervals.Tolerance := 0;
    Axis.Minors.Clear;
  end;
end;                 
Der Code ist aus einem älteren Projekt übernommen (also nicht unbedingt mit dieser Version von FPC oder Lazarus erstellt) und hat damals funktioniert.

(Die jeweilige Zeile darunter habe ich auskommentiert, weil dort die "aip.." nicht definiert waren)

Das damit übersetzte Programm tut jetzt auch, was es soll - es werden im Verlauf 2 LineSeries in ein TChart gezeichnet (x-Achse log, y-Achse lin). Soweit so gut.

Aber beim Editieren kommt es manchmal zu folgender Fehlermeldung und Control-SPACE funktioniert nicht mehr.

Code: Alles auswählen

Codetools, Fehler 1:
Error: Unit nicht gefunden: TAChartAxis
Wenn ich dann TAChartAxis raus nehme, kommt die Unit im Uses-Bereich: TASources

ich frage mich trotzdem, was hat sich bei TChart geändert?

Der Fehler tritt aktuell mit der neuen Version 3.2 als auch mit der Vorversion 3.0 auf. Beide Versionen sind über das Arch Package Tool installiert.

Nach dem Update von 3.0 auf 3.2 habe ich (natürlich) Lazarus neu compiliert (dabei sind AnchorDocking 1.0, AnchorDockingDsgn 1.0 und DockedFormEditor 0.0 als zusätzliche Lazarus-Packages installiert). Das hat gut funktioniert.

Ich hoffe, das war jetzt nicht zu kompliziert und irgendjemand kann mit den Meldungen was anfangen. Da das Programm funktioniert, kann ich arbeiten - also nicht dringend.

Ciao,
Photor


PS: ich habe eben probeweise mal ~/.lazarus verschoben und Lazarus 3.2 neu compiliert; das funktioniert allerdings nicht ganz: die Lazarus-IDE startet mit einem zu kleinen Fenster; beim Größerziehen gibt es eine Fehlermeldung und Lazarus stürzt ab. (bei Bedarf versuche ich die Meldung nachzuliefern)

PS2: Ich nutze Lazarus (Gtk2-Version) unter Gnome/Wayland (Lazarus läuft dann in einer XWayland-Umgebung).

PascalDragon
Beiträge: 832
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Note zu TChart

Beitrag von PascalDragon »

photor hat geschrieben:
Fr 1. Mär 2024, 18:35
ich sehe hier folgende Note, wenn ich ein Projekt mit TChart compiliere:

Code: Alles auswählen

Note: Call to subroutine "function TChartAxis.GetMarks:TChartAxisMarks;" marked as inline is not inlined
Note: Call to subroutine "function TChartAxis.GetMarks:TChartAxisMarks;" marked as inline is not inlined
Wie der Name der Meldung sagt, es ist einfach nur eine Note. Neuere FPC Versionen (ab 3.2.0) geben eben aus, wenn eine Funktion, welche als inline markiert wurde, aus welchem Grund auch immer von FPC nicht geinlined werden kann. Dies kann daran legen, weil die Funktion etwas nutzt, dass einfach nicht geinlined werden kann (zum Beispiel Inlineassembly), etwas das einfach noch nicht unterstützt wird (zum Beispiel inherited) oder weil die Funktion zu komplex ist. Dies ändert nichts an deinem Code, da die Funktion dann auch in älteren Versionen von FPC nicht geinlined wurde, FPC moniert das nun einfach. Und nein, in den Fällen, in denen es in Drittcode ist (wie TAChart) kannst du nichts dagegen machen.
FPC Compiler Entwickler

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

Re: Note zu TChart

Beitrag von wp_xyz »

aipUseCount und die anderen sind in Unit TACustomSources deklariert.

Zu dem Ctrl+Space Problem kann ich nichts sagen, weil ich mit dem klassischen Tastatur-Layout arbeite und da ist diese Tastenkombination nicht definiert. Hab's mir mal für Code-Completion eingetragen, mal sehen...

Benutzeravatar
photor
Beiträge: 445
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: Note zu TChart

Beitrag von photor »

Hallo wp_xyz,

Control-SPACE ist im Prinzip Code-Competion, glaube ich. Ich nutze es im wesentlichen für die Class-Member.

Das funktioniert immer dann nicht mehr, wenn ein Fehler im Code zu finden ist. Zu allermeist meine Schuld. Aber in diesem Fall kann ich mit der angezeigten Stelle (TAChartAxis) nichts damit anfangen - zumal ja die Compilierung ohne Fehler durchläuft.

Ciao,
Photor

Antworten