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/)
-   -   Scrollbar: Min, Max und Position (https://www.delphipraxis.net/165604-scrollbar-min-max-und-position.html)

idefix2 8. Jan 2012 11:16

Scrollbar: Min, Max und Position
 
Ich stelle in einer Zeichenfläche hintereinander verschiedene Kurven(ausschnitte) dar. Die Werte min und max geben den x-Bereich der Kurve an, die ich gerade darstellen will. Beispiel:
1. Kurve: min=0 max=1000 position=irgendetwas dazwischen.
Jetzt kommt die nächste Kurve, bei der ist min=5000 und max=10000, position soll zu Beginn der Darstellung der linke Rand, also auch 5000 sein.
Jetzt muss ich zuerst max hinaufsetzen, erst danach kann ich position setzen und danach min hinaufsetzen.
Liegt die nächste Kurve weiter links, muss ich genau in der umgekehrten Reihenfolge vorgehen, sonst meldet das Programm "Eigenschaft Scrollbar ausserhalb des zulässigen Bereichs". Das ist mühsam, weil ich muss so alle denkbaren Zuweisungsreihenfolgen in Abhängigkeit der alten Scrollbarwerte ausprogrammieren.

Gibt es eine Möglichkeit, Position, min und max "gleichzeitig" zu setzen, ohne dass eine Fehlermeldung kommt, wenn kurzzeitig die Werte nicht zusammenpassen?

himitsu 8. Jan 2012 11:18

AW: Scrollbar: Min, Max und Position
 
Delphi-Referenz durchsuchenTScrollBar.SetParams ?


Ansonsten selbermachen.
Delphi-Quellcode:
type
  TScrollBarPosHelper = class helper for TScrollBar
    function SetMinMax(Min, Max: Integer);
  end;

function TScrollBarPosHelper.SetMinMax(Min, Max: Integer);
begin
  if Min >= Self.Max then Self.Max := Max;
  if Max <= Self.Min then Self.Min := Min;
  if Position > Max then Position := Max;
  if Position > Min then Position := Min;
  if Min <> Self.Min then Self.Min := Min;
  if Max <> Self.Max then Self.Max := Max;
end;
Läßt sich natürlich auch als einzelne Prozedur verwenden, also vor D2006/TDE.

idefix2 8. Jan 2012 11:25

AW: Scrollbar: Min, Max und Position
 
Ah danke, das wars.

Erfreulicherweise tut SetParams genau das Gewünschte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:11 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