@nieznany - tu nie chodzi o to, co będzie najlepsze (bo w obu przypadkach i tak będziesz korzystał z TImage
) tylko o to, co będzie kosztować mniej pracy, czyli mniej kodu; Jeśli wykorzystasz wspomniany TScrollBox
to wystarczy jedynie położyć na niego komponent obrazka i załadować do niego grafikę lub ją narysować - tyle zabawy; W przypadku własnego rysowania będzie nieco więcej roboty, jednak oczywiście jest to do zrobienia;
Wczoraj z ciekawości pobawiłem się i wystarczająco dobry efekt można uzyskać na komponencie TImage
; Tyle że ja chciałem wiedzieć, czy przesuwanie obrazu myszą będzie działało płynnie na moim dość leciwym sprzęcie i muszę stwierdzić, że bez problemu będzie, nawet przy dużych grafikach; Wystarczą odpowiednie obliczenia i tak jak wspomniałem w poprzednim poście:
- dodatkowa zmienna (lub pole klasy formularza) typu np.
TBitmap
, do której ładujesz całą grafikę lub na niej rysujesz,
- dodatkowa zmienna określająca offsety aktualnie wyświetlonego fragmentu oryginalnego obrazu;
Przy przesuwaniu scrollem zwiększasz lub zmniejszasz odpowiedni offset (osi X
lub Y
) i rysujesz w komponencie fragment oryginalnego obrazu, bazując właśnie na ustawianych offsetach;
Robiąc to ręcznie będziesz musiał dodatkowo stworzyć paski przesuwu, zainicjować wartości ich właściwości i przypisać nowe zdarzenia, jeśli nie masz tego komponentu na palecie, czyli nie możesz ich położyć na formie i ustawić w edytorze formularza; Ja nie mam tego komponentu na palecie, więc stworzyłem je dynamicznie i wszystko śmigało; Trzeba tylko nieco pokombinować - robota na góra godzinę.