Autor Beitrag
FiceGoesDelphi
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 485

Win XP Prof
Delphi 2006
BeitragVerfasst: Di 05.02.08 13:48 
Juten Tach,

ich möchte einen "Zoom-Effekt" wie bei dem WindowsTaskManager haben.
Dort wird bei der Netzwerk-Auslastung der Bereich der angezeigt wird vergrößert, sobald ein Wert über den des Maximums ausschlägt. Dann bleibt der Bereich so groß, bis der Wert nicht mehr zu sehen ist.
Momentan habe ich eine einfache und unsaubere Lösung die zu mindestens den Bereich für einen Augenblick vergrößert:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
   if ( Wert < 750 ) and ( Wert > 250 )then begin
      JvSimScope1.Maximum := 750;
   end else begin
      if Wert > 750 then begin
         JvSimScope1.Maximum := Wert + 50;
      end else begin
         if Wert < 250 then begin
            JvSimScope1.Maximum := Wert + 50;
         end;
      end;
   end;


Wie schaffe ich es jetzt, den "MaximumWert" so lange zu behalten, bis der Wert aus der Komponente rausläuft?
Zusätzlich muss ich auch noch beachten, dass der Wert danach ja nochmal größer werden kann. Also kann ich nicht stur einen Timer laufen lassen. Oder ich müsste den Timer dann nochmal neu starten wenn ich halt einen höheren Wert erhalte.
Das gleiche soll natürlich auch ins Negative funktionieren. Also wenn ich ganz plötzlich sehr niedrige Werte habe.
Ich hoffe mir jann jemand helfen :) Die Komponente die ich benutze ist TJvSimScope. Aber die kennt eh keiner :(

_________________
<(^^<) <(^^)> (>^^)>
===================
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Mo 13.04.09 18:45 
Ich würde die Werte z. B. in einer Stringlist speichern und dann jedes Mal den maximalen Wert berechnen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 13.04.09 19:03 
Eine TStringList ist aber sehr schlecht geeignet, denn diese ist nun einmal für Strings...
Wenn, dann wäre eher eine TList geeignet, der du den Integerwert als Pointer gecastet einspeichern kannst. Dann kannst du direkt mit den Werten rechnen.

Oder auch die diversen Stackimplementierungen von Delphi.

Aber hat die Komponente selbst die Werte nicht auch gespeichert? Ich kenne die nicht, aber darüber müsste das doch auch direkt gehen.