Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];

Вниз

Работа с TImage   Найти похожие ветки 

 
Well   (2002-03-25 09:52) [0]

Проблема такая:
в ScrollBox загружается изображение. Если размер рисунка больше размера ScrollBox появляются полосы прокрутки.
Кроме скроллинга нужно организовать перетаскивание изображения мышью (как в ACDsee32 ).
Хотел привязать свойство Position ScrollBox к координатам X,Y мыши, но не получается, изображение начинает дрожать и скроллинг идет с ускорением.
Подскажите, как решить эту проблему?


 
MBo   (2002-03-25 09:58) [1]

можно попробовать обрабатывать OnMouseMOve при нажатой кнопке и генерировать скроллинг


 
Well   (2002-03-25 14:08) [2]

Пробовал, не получается. Тут проблема еще в том, что при скроллинге меняются координаты курсора мыши. Надо привязать курсор к точке изображения так, чтобы он двигался вместе с этой точкой при скроллинге. Но почему-то не получается...:((


 
MBo   (2002-03-25 14:46) [3]

ну вот это кое-как работает (Image в ScrollBox)

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then begin
x0:=x;y0:=x;
end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ssLeft in Shift then begin
if y<>y0 then scrollbox1.VertScrollBar.position:=
scrollbox1.VertScrollBar.position+(y0-y);
if x<>x0 then scrollbox1.HorzScrollBar.position:=
scrollbox1.HorzScrollBar.position+(x0-x);
label1.caption:=inttostr(scrollbox1.VertScrollBar.position);
end;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then begin
x0:=x;y0:=x;
end;
end;


 
Well   (2002-03-26 08:14) [4]

Спасибо!
Все работает.:))
Я не правильно делал привязку координатов мыши и свойства Position :(



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
14-22806
alan
2002-02-27 06:26
2002.04.08
Помогите найти...


1-22677
snoup
2002-03-26 07:49
2002.04.08
Как сделать так, что бы например по истечению 10 сек. происходило кокоето событие (пример имеется ввиде TTimer)


3-22544
Malder
2002-03-10 12:58
2002.04.08
Невозможность использовать Update, если в View есть поле типа Blob


1-22652
Goblinus
2002-03-27 18:55
2002.04.08
RichEdit


3-22581
Дуся
2002-03-13 17:50
2002.04.08
Как сделать инсталляцию с ADO??





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский