Autor Beitrag
OnkelDave
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 04.07.03 22:42 
Hi,
also ich möchte ein Diagramm erstellen, wie es im Taskmanager bei der CPU Auslastungsanzeige zu sehen ist und zwar mit der Komponente TChart. Ich lese die Daten hierzu aus einer *.log Datei mit einem Timer aus und lasse sie mir anzeigen, dies ist auch soweit kein Problem. Nur wenn ich jetzt mehrere Daten anzeigen möchte, ist schnell der rechte Rand erreicht und es wird über den sichtbaren Bereich hinausgezeichnet. Wie bringe TChart dazu, dass es mitscrollt so wie es bei der CPU Auslastungsanzeige der Fall ist???
Hierzu habe ich schon die Suchfunktion des Forums benutzt, die OH von Delphi und gegooglet habe ich auch schon, jedoch leider ohne Erfolg.
Ich hoffe ihr könnt mir helfen.

Ciao
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 04.07.03 22:50 
Entweder löschen und wieder links anfangen. Oder alle paar Sekunden einen um einen paar Sekunden verschobenen Bereich zeichen:

Beispiel mit Zahlen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
|1_____|
|21____|
|321___|
|4321__|
|54321_|
|654321|
|765432|
|876543|
OnkelDave Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 06.07.03 15:49 
Danke für den Tipp!!!
Hier für alle, die wissen möchten wie ich es gelöst habe:

Beim OnAfterAdd Ereignis muss man folgendes hinzufügen
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.Series1AfterAdd(Sender: TChartSeries;
  ValueIndex: Integer);
begin
  With Sender.GetHorizAxis do
     Begin
        Automatic := False;
        Maximum := Sender.XValues.MaxValue;
        Minimum := Maximum - DateTimeStep[dtFiveMinutes];
     end;
     While (Sender.Count>0) and
      (Sender.XValues[0] < Sender.GetHorizAxis.Minimum) do
      Sender.Delete(0);
end;

Beim Timer folgendes hinzufügen
ausblenden Quelltext
1:
2:
3:
4:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Series1.AddXY(Now,random(100));
end;

Und beim OnFormCreate folgendes:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Series1.XValues.Order:=loAscending;
  Series1.XValues.DateTime:=true;
  Series1.GetHorizAxis.Increment:=DateTimeStep[dtOneMinute];
  Series1.GetHorizAxis.DateTimeFormat:='hh:mm';
  Series1.GetHorizAxis.LabelsMultiLine:=false;
  Chart1.BufferedDisplay:=True;
  Randomize;
  Series1.AddXY(now, 0);
  Timer1.Enabled:=true;
end;