Ich denke Dein erstes Problem könntest Du lösen in dem Du das SeriesAfterAdd Ereignis mit Leben füllst:
Delphi-Quellcode:
procedure TMakrofenster.Series1AfterAdd(Sender: TChartSeries;
ValueIndex: Integer);
var
step:Double;
aaxis:TChartAxis;
begin
step:=DateTimeStep[dtOnesecond]*1; //Für eine Sekunde
aaxis:=Sender.GetHorizAxis;
aaxis.Automatic := False;
aaxis.Maximum := sender.XValues.MaxValue;
aaxis.Minimum := aaxis.Maximum - step;
end;
Hier zeige ich immer nur die letzte Sekunde an. Wenn Du verschiedene Zeitabschnitte anzeigen willst, musst Du noch das Maximum anpassen.