CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Przewijanie TImage z ScrollBoxem
Strona 1 z 1

Przewijanie TImage z ScrollBoxem

Nowy postNapisane: sobota, 7 czerwca 2014, 15:14
przez Przemyslav
Witam serdecznie :) Mam podobny problem jak kolega (viewtopic.php?f=4&t=1416 - jakoś nie mogłem dodać nowego postu), tzn. mam taką formę:

Obrazek

i na tą chwilę mogę przewijać mapkę z TImage tylko ScrollBox'em. Próbowałem dodawać porady zawarte w tamtym temacie, ale niestety nie zadziałało. Czy jest możliwość zrobienia w taki sposób, że użytkownik klikając LPM na mapce i trzymając może ją płynnie przeciągać i przesuwać w obrębie ScrollBoxa. Tak jakby przesuwał prawdziwą np. AutoMapę, czy Google Maps?? Dziękuję za pomoc :)

Re: Przewijanie TImage z ScrollBoxem

Nowy postNapisane: sobota, 7 czerwca 2014, 22:39
przez Cyfrowy Baron
Ustaw DoubleBuffered obiektu ScrollBox na true, żeby wyeliminować efekt migotania obrazu podczas przesuwania. A oto kod:

Plik nagłówkowy np. Unit1.h
KOD cpp:     UKRYJ  
private:
                int iX, iY;
                bool bMove;


Plik źródłowy np. Unit1.cpp
KOD cpp:     UKRYJ  
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 bMove = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
                  int X, int Y)
{
 iX = X;
 iY = Y;
 bMove = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X,
          int Y)
{
 if( !bMove ) return;

 ScrollBox1->HorzScrollBar->Position = ScrollBox1->HorzScrollBar->Position + iX - X;
 ScrollBox1->VertScrollBar->Position = ScrollBox1->VertScrollBar->Position + iY - Y;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
 bMove = false;
}

Re: Przewijanie TImage z ScrollBoxem

Nowy postNapisane: sobota, 7 czerwca 2014, 23:01
przez Przemyslav
Dziękuję serdecznie za pomoc :) Sam bym na to nie wpadł :) Jesteś nie oceniony ^_^