Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   TChart mit Zeitachse in Stunden über 24h hinaus (https://www.delphipraxis.net/204019-tchart-mit-zeitachse-stunden-ueber-24h-hinaus.html)

norwegen60 15. Apr 2020 21:23

TChart mit Zeitachse in Stunden über 24h hinaus
 
Hallo zusammen,

gibt es eine Einstellung in TChart mit der die X-Achse als reine Zeitachse dargestellt werden kann?
Ich weiß, dass man die Achse auf TDateTime setzen kann. Was ich suche, ist dass 48 Stunden als 48:00 angezeigt werden.

Wenn das mit Bordmitteln nicht möglich ist, gibt es ja noch die Möglichkeit über OnGetAxisLabel selber einzugreifen. Ab er selbst die Formatierung über FormatDateTime beschränkt Stunden auf [0..23].

Gibt es in Delphi eine ähnliche Funktion wie in Excel wo man über [h]:mm:ss definieren kann, dass auch mehrere Tage in Stunden angezeigt werden.

Ich verwende Delphi XE

Danke
Gerd

himitsu 15. Apr 2020 21:59

AW: TChart mit Zeitachse in Stunden über 24h hinaus
 
Ist es nicht möglich der X-Achse Strings als Bezeichner zu geben?
Dann kannst dort ja selbst mit Format '%2d:%2d' passende Texte erstellen.

norwegen60 15. Apr 2020 22:07

AW: TChart mit Zeitachse in Stunden über 24h hinaus
 
Es ist nicht das ganz große Problem was eigenes zu machen.
Dann geht es aber aucg gleich los, dass man sich selber um irgenwelche Skalierungen kümmern muss, wenn die Zeiten größer oder kleiner werden. Von daher hätte ich etwas bevorzugt, was standardmäßig da ist.

Rollo62 16. Apr 2020 06:42

AW: TChart mit Zeitachse in Stunden über 24h hinaus
 
Das liegt wohl darasn dass das Delphi Format nur bis 24h kann.
Müsste man sich was drumrum bauen, z.B. so:


Delphi-Quellcode:
program Project8;
{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils, System.TimeSpan, System.DateUtils;

var
  ts: TTimeSpan;

begin
  FormatSettings.DateSeparator := '/';
  ts := TTimeSpan.FromSeconds(SecondsBetween(StrToDateTime('01/10/2014'), StrToDateTime('01/07/2014 12:00:00 a.m.')));
  WriteLn(Format('%dd %dh %dm', [ts.Days, ts.Hours, ts.Minutes]));
  WriteLn(#13#10 + 'Press any key to quit.');
  ReadLn;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz