![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перетаскивание мышью ScrollBox'a [D5, D6, D7]
AlexeyT © (2006-09-09 23:37:00)Нужно сделать содержимое TScrollBox'a перетаскиваемым мышью - в нем располагается TImage, и хочется таким образом сделать перетаскивание картинки в боксе. Есть ли готовый компонент для этого? На Торри нашел вот это: TTouchScroller
но он вроде только под D1. Еще в составе Envision Image Lib есть скроллбокс, но библиотека платная и большая. Есть что-то еще?
Или написать это совсем несложно?
Calibr (2006-09-10 21:48:00) [1]Вот так попробуй. Сообщи получилось или нет.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
ScrollBox1: TScrollBox;
Timer1: TTimer;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Timer1Timer(Sender: TObject);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
iX, iY: Integer;
implementation
{$R *.dfm}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
iX := X;
iY := Y;
Timer1.Enabled := true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
pPoint: TPoint;
begin
GetCursorPos(pPoint);
Image1.Left := pPoint.X - iX - Left - ScrollBox1.Left - (Width - ClientWidth) + 2;
Image1.Top := pPoint.Y - iY - Top - ScrollBox1.Top - (Height - ClientHeight) + 2;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Timer1.Enabled := false;
end;
end.
Loginov Dmitry (2006-09-10 10:03:00) [2]> AlexeyT © (09.09.06 23:37) [0]
> Или написать это совсем несложно?
Совсем не сложно.