AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suche eine TImage Komponente mit Scrollbars

Ein Thema von Tim.exe · begonnen am 2. Feb 2004 · letzter Beitrag vom 30. Sep 2008
Antwort Antwort
Tim.exe

Registriert seit: 29. Apr 2003
186 Beiträge
 
#1

Suche eine TImage Komponente mit Scrollbars

  Alt 2. Feb 2004, 09:58
Hallo,

kennt jemand zufällig eine TImage ähnliche Komponente die entweder Scrollbars oder eine Propety wie z.B. "StretchToFit" hat?

Die originale TImage Komponente verzerrt zu sehr große Bilddateien (Autosize, Stretch)...
!!! Sigs stinken !!!
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Suche eine TImage Komponente mit Scrollbars

  Alt 2. Feb 2004, 10:03
Hallo,
lege das TImage auf eine TScrollBox und setzte die Range Eigenschaften von HorzScrollBar
und VertScrollBar auf die Abmessungen des Bildes
  Mit Zitat antworten Zitat
Tim.exe

Registriert seit: 29. Apr 2003
186 Beiträge
 
#3

Re: Suche eine TImage Komponente mit Scrollbars

  Alt 2. Feb 2004, 10:15
...Das mir das nicht eingefallen ist...

Vielen Dank
!!! Sigs stinken !!!
  Mit Zitat antworten Zitat
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, 14: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
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Suche eine TImage Komponente mit Scrollbars

  Alt 30. Sep 2008, 14:18
Hallo,
versuche es mal so

If (Position>=(Range-Image.Height))
I come from outer space to save the human race
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: Suche eine TImage Komponente mit Scrollbars

  Alt 30. Sep 2008, 14:47
Hallo,

gute Grafikkomponenten findest Du bei HiComponents, sie sind nicht kostenlos, allerdings halte ich die Preise für die Leistungsfähigkeit dieser Komponenten durchaus für angebracht.

Stephan
  Mit Zitat antworten Zitat
Schwedenbitter

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

Re: Suche eine TImage Komponente mit Scrollbars

  Alt 30. Sep 2008, 16:05
Zitat von Jens Schumann:
If (Position>=(Range-Image.Height))
Das kann es leider nicht sein. Trotzdem Danke fürs Mitdenken.
Ich setzte Range gerade mit Hilfe von Image.Height. Da beide folglich gleich groß sind, wäre das Ergebnis stets 0 und Position dann immer größer/gleich null.

Ich habe mir gerade die Properties ButtonSize, Margin, Size und ThumbSize angesehen. Die sind auch immer alle 0. Da frage ich mich glatt, wozu sind sie da?

Andere Vorschläge?
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Suche eine TImage Komponente mit Scrollbars

  Alt 30. Sep 2008, 16:09
Zitat von Schwedenbitter:
Zitat von Jens Schumann:
If (Position>=(Range-Image.Height))
Das kann es leider nicht sein.
Stimmt. Du musst nicht die Höhe des Images abziehen, sondern den sichtbaren Bereich der ScrollBox
If (Position>=(Range-ScrollBox.ClientHeight))
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Schwedenbitter

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

Re: Suche eine TImage Komponente mit Scrollbars

  Alt 30. Sep 2008, 17:09
Zitat von Jens Schumann:
Stimmt. Du musst nicht die Höhe des Images abziehen, sondern den sichtbaren Bereich der ScrollBox
If (Position>=(Range-ScrollBox.ClientHeight))
Bingo! und Danke!
Alex Winzer
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:45 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