TaChart nicht mehr Zoombar [gelöst]

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1452
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

TaChart nicht mehr Zoombar [gelöst]

Beitrag von corpsman »

Hallo zusammen und sry für den Reiserischen Titel.
Ich habe folgendes Problem.

Meine Anwendung besteht aus mehreren Formularen auf fast jedem befindet sich mindestens 1 Tachart mit diversen TLineSeries ..
Wie immer habe ich nichts gemacht außer den Code neu Compiliert und auf einmal geht die "Linke Maustaste Rechteck ziehen" Zoom funktion in allen Tachart nicht mehr. Es sieht so aus als ob das Projektweit so ist, nicht nur auf einzelnen Formularen.

Ich habe auch schon versucht ein komplett neues Tachart auf einem Formular im Projekt zu erstellen, selbes verhalten.
Ein komplett neues Projekt angelegt, da funktioniert alles wie es soll.
=> Es liegt nicht an TaChart sondern wohl an meinem Projekt.

Nun die Frage kennt jemand einen Weg mit dem ich für das gesamte Projekt die TaCharts deaktivieren kann ? Das Problem tritt auf Windows, Linux 64 und dem Raspi auf. Ist also auch OS unabhängig.
Form.enabled habe ich schon ausgeschlossen, denn auf dem Form befinden sich noch TButtons die kann ich klicken und das wäre dann ja auch Form weise.

Bin ein wenig Ratlos, hat von euch noch einer eine Idee ?


übrigens:

Code: Alles auswählen

procedure TForm1.Chart1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  showmessage('asd');
end;
Die Meldung wird angezeigt, also generell kommt die Maus auf das Panel...
Zuletzt geändert von corpsman am Mi 19. Jul 2023, 06:04, insgesamt 1-mal geändert.
--
Just try it

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

Re: TaChart nicht mehr Zoombar

Beitrag von wp_xyz »

corpsman hat geschrieben:
Di 18. Jul 2023, 07:50
auf einmal geht die "Linke Maustaste Rechteck ziehen" Zoom funktion in allen Tachart nicht mehr.
Das wäre erklärbar, wenn du entweder das AllowZoom des Chart deaktiviert hast, oder ein TChartToolset aufs Formular geklickt und mit dem Chart über dessen Tools-Eigenschaft verbunden hast. Die Funktion "Linke Maustaste Rechteck ziehen" wird durch ein internes Toolset realisiert, das deaktiviert wird, wenn ein externes Toolset mit dem Chart verbunden wird (weil TChart nur 1 Toolset verwalten kann). In diesem Fall müsstest du dem externen Toolset ein ZoomDragTool (mit Shift=ssLeft) und ein ZoomPantool (mit Shift=ssRight) hinzufügen, um die Funktionalität des internen Toolset wiederherzustellen.
corpsman hat geschrieben:
Di 18. Jul 2023, 07:50
Nun die Frage kennt jemand einen Weg mit dem ich für das gesamte Projekt die TaCharts deaktivieren kann ?
Ich verstehe nicht, wie diese Frage mit dem deaktivierten Zoomen zusammenhängt?

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1452
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TaChart nicht mehr Zoombar

Beitrag von corpsman »

Also die ToolSet Eigenschaft aller TaCharts ist "Nil", und das AllowZoom habe ich bei allen geprüft steht im Objectinspector auf "true". Das ist es nicht ..
--
Just try it

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

Re: TaChart nicht mehr Zoombar

Beitrag von wp_xyz »

Folgendes wäre noch möglich: Wird in dem Projekt irgendwo die Unit TATools in "uses" genannt? Auch wenn sie sonst nicht explizit verwendet wird, stellt sie den Handler für OnInitBuiltinTools zur Verfügung, mit dem sich TChart die eingebauten Tools für Zoomen und Draggen erzeugt. Wenn TATools nicht aufgerufen wird, fehlt dieser und damit die eingebauten Tools.

Von ähnlichem Kaliber ist die Unit TAChartLazarusPkg - das ist die Package-Unit, die standardmäßig in der Projekt-lpr-Datei eingebaut wird und alle TAChart-Units einbindet, obwohl sie dort eigentlich gar nicht benötigt wird. Aber wenn sie fehlt, wird auch TATools nicht aufgerufen --> siehe oben...

Also falls eines von den beiden zutrifft, schreibe TATools in die uses-Zeile des Haupt-Formulars, dann sollte es wieder gehen (und akzeptiere, das Gemecker der IDE über die nicht verwendete Unit).

Ich hoffe, ich komme nach diesem Thread hoffentlich nie auf die Idee, ein TAChart zu committen, in dem das Häkchen bei "Add package unit to uses section" in den TAChart-Package-Optionen entfernt ist - denn das hätte genau diesen Effekt.
übrigens:

Code: Alles auswählen

procedure TForm1.Chart1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
showmessage('asd');
end;

Die Meldung wird angezeigt, also generell kommt die Maus auf das Panel...
Genau das darf mit funktionierenden Tools nicht passieren, denn TAChart übernimmt bei aktiven ChartTools komplett die Kontrolle über die Maus- und Tastatur-Events, d.h. sowas wie OnMouseDown wird gar nicht aufgerufen.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1452
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TaChart nicht mehr Zoombar

Beitrag von corpsman »

Boa, wp_xyz du bist mein neuer TaChart Held (y)

Also ich habe hier ein tool welches mir aus allen Units in meinem Projekt die "unnötigen" raus wirft.
Und Tatsache dieses Tool hat aus der .lpr Datei die "tachartlazaruspkg" raus geworfen, weil die da ja nicht benötigt wird. Wenn ich diese wieder in die Uses aufnehme (diesmal mit nem Fetten Kommentar das die nie wieder raus gemacht werden darf!) dann funktioniert es wieder wie es soll.

Der Wahnsinn, saved my day *g*.
--
Just try it

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1452
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TaChart nicht mehr Zoombar [gelöst]

Beitrag von corpsman »

@wp_xyz
ich hab noch ein Tachart Thema aufgemacht ( viewtopic.php?f=18&t=15019 ) kannst du da auch weiter helfen ?
--
Just try it

Antworten