Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: TScrollbox erkennt Aktualisierung im Clientbereich nicht

  Alt 18. Okt 2006, 07:36
Zitat von berens:
Nun bleibt nur noch die Frage, ob es nicht doch irgendwie möglich ist, "Range" automatisch neu berechnen zu lassen. Weil ich wollte jetzt nicht immer alle Komponenten per Hand durchzählen um dem "untersten" Punkt zu ermitteln, der dann (abzüglich öhm. Scrollbox.Height (?)) die Range ist...
...in einer jeden solchen Situation wäre dann aber immer wieder nur ein Aufruf von z.B. folgender Procedure nötig:

Delphi-Quellcode:
procedure getScrollBoxRange(AScrollBox : TScrollBox);
var I, RangeMin : integer;
begin
  RangeMin := AScrollBox.ClientHeight;
  with AScrollBox do
    for I := 0 to ControlCount-1 do
      if (Controls[I] is TWinControl) then
        with Controls[I] as TWinControl do
          if Top + Height > RangeMin then
            RangeMin := Top + Height;
  AScrollBox.VertScrollBar.Range := RangeMin +10; // +10 = SpacePuffer
end;

edit: Schönheitskorrektur im Code
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat