ScrollBox Image

dasej
  • Rejestracja:prawie 22 lata
  • Ostatnio:3 miesiące
  • Lokalizacja:Słupsk
0

Jak przesynąć myszą bitmapę na Inage, która jest pięć razy miejsza od aktywnego okna ScrollBox nie używając belek ScrollBox
Podbnie jak w AutoCad Corel itp.

wesoledi
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 5 lat
0

nie bardzo rozumiem o co ci chodzi....
moze o takie cos:

Kopiuj
//glowna deklaracja
var startx,starty:integer;
      draging:boolean;

//teraz zdarzenia image'a
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if button=mbleft then
begin
startx:=x;
starty:=y;
draging:=true;
end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if draging then
begin
image1.Left:=image1.Left+(-startx+x);
image1.top:=image1.top+(-starty+y);
draging:=false;
end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if draging then
begin
image1.Left:=image1.Left+(-startx+x);
image1.top:=image1.top+(-starty+y);
end;
end;

//zaladuj jakis obrazek do image'a i ten timage sprobuj przesuwac po scrollboxie (o ile timage jest na scrollboxie)
//ustaw tez dragmode na manual


+1 post
dasej
  • Rejestracja:prawie 22 lata
  • Ostatnio:3 miesiące
  • Lokalizacja:Słupsk
0

Działa ale nie oto chodziło.
Czytam plik WMF, który powiększam lub pomiejsz przesywając image po ScrollBox-ie i np. pomiejszeniu ucieka poza obszar widoczny przez SrcollBox i niemożna go znaleŹć w oknie. Chodziło mi o takie przesuwanie Image by to się ScrollBox ruszał a Image żeby nie ruszał się na ScrollBox. Dzięli temu nieda się Image wysunąc poza obszar widzenie.

dasej
  • Rejestracja:prawie 22 lata
  • Ostatnio:3 miesiące
  • Lokalizacja:Słupsk
0

Dzięki przykład pomógł. Problem rozwiązałem. Zrobiłem trochę inaczej. Denerwowało mnie mruganie w czasie przesuwania rysunku. Jak to rozwiązałem jest na serwerze
<url> http://4programmers.net/view_file.php?id=1509 </url>

0

Jak sie pozbyc tego mrugania?? Tego pliku juz nie ma na serwerze :(

cimak
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
  • Postów:1668
0
Kopiuj
DoubleBuffered:=True;

?

0

Ale gdzie to wpisac??

DR
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
  • Postów:683
0

Gdzies w kodzie...

0

gdzie, ze gdzies to tez wiem

0

gdzie, ze gdzies to tez wiem

0

Ok, wiem juz gdzie sie to wstawia, jezeli obiekt jest Od razu na formie to:
Form1.DoubleBuffered := true;

A jak jest jeszcze na jakims obiekcie to zamiast formy to obiekt, w moim przypadku to jest tak:
ScrollBox1.DoubleBuffered := true;

A teraz drugi problem, scroll box mi zle wyswietla na belkach polozenie obrazka, a zrobilem tak jak jest na gorze napisane.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.