Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Suche eine TImage Komponente mit Scrollbars

  Alt 30. Sep 2008, 15:15
Zitat von Jens Schumann:
Hallo,
lege das TImage auf eine TScrollBox und setzte die Range Eigenschaften von HorzScrollBar
und VertScrollBar auf die Abmessungen des Bildes
Ich bin der Meinung, dass das in die FAQ sollte, falls es dort nicht schon steht. Ich habe einen ganzen Tag mit genau diesem Problem zugebracht. Dabei ist es so einfach.

Mich stört aber noch etwas anderes:
Ich habe in meiner ScrollBox ein einziges Bild, welches ich auf ButtonsKlicks bzw. Tastatureingaben jeweils aktualisiere. Ich möchte das auch mit dem Scrollrad können. Beim Hochscrollen ist das auch kein Problem. Die Lösung ist folgende:

Delphi-Quellcode:
Procedure TForm1.ScrollBox1MouseWheelUp(Sender: TObject; Shift: TShiftState;
   MousePos: TPoint; var Handled: Boolean);
Begin
   With ScrollBox1.VertScrollBar Do
   Begin
      If (Position=0) And         // Wenn Scrollbar ganz oben und
      (ListBox2.ItemIndex>0) Then // mind. 2ter Eintrag in Liste
      Begin
         ListBox2.ItemIndex:=Pred(ListBox2.ItemIndex);
         ShowPicture;            // Bild laden, Range anpassen etc.
         Position:=Range;         // ScrollBar soll ganz unten starten
      End
      Else Position:=Position-Increment;
   End;
   Handled:=true;
End;
Vom Ansatz her hatte ich gehofft, beim nach unten Scrollen würde das hier funktionieren, aber es geht nicht:
Delphi-Quellcode:
Procedure TForm1.ScrollBox1MouseWheelDown(Sender: TObject; Shift: TShiftState;
   MousePos: TPoint; var Handled: Boolean);
Begin
   With ScrollBox1.VertScrollBar Do
   Begin
      If (Position>=Range) And (ListBox2.ItemIndex<Pred(ListBox2.Count)) Then
      Begin
      ...
Ich habe es mir ausgeben lassen: Leider ist Position nie so groß wie Range.

Wie kann ich herausfinden, ob der Scrollvorgang unten angekommen ist. Bestimmt ist es ganz einfach und ich sehe nur den Wald vor lauter Bäumen wieder nicht ...

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat