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




Вниз

Работа с графикой 


Alex500   (2002-03-02 13:54) [0]

Подскажите, как сделать так, чтобы в моей программе картинка большого размера отображалась частично в небольшом окне, и чтобы можно было ее просматривать, передвигая мышью картинку, наподобие того, как это сделано в ACDSee. Заранее спасибо.



Nikolay   (2002-03-02 14:44) [1]

обрабатывай onMouseDown и onMouseMove.



vbazik   (2002-03-02 16:14) [2]

1.Создаешь окно
2.Находишь положение мыши на основном окне
3. Определяешься с прямоугольником, который хочешь отображать
3. Копируешь посредством copyrect() из одного bitmap в другой



Набережных С.   (2002-03-02 20:18) [3]

Положи на форму TPanel, на нее - TImage.

var
StartPoint:TPoint;

procedure TForm1.FormCreate(Sender: TObject);
begin
Panel1.DoubleBuffered:=true;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
StartPoint:=Panel1.ScreenToClient(Image1.ClientToScreen(Point(x-Image1.Left,y-Image1.Top)));
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
NewPoint:TPoint;
begin
if ssLeft in Shift then
begin
NewPoint:=Panel1.ScreenToClient(Image1.ClientToScreen(Point(x, y)));
with NewPoint do
if
(x < 0)or(x > Panel1.Width)or
(y < 0)or(y > Panel1.Height)
then
Exit;
Dec(NewPoint.x, StartPoint.x);
Dec(NewPoint.y, StartPoint.y);

if NewPoint.x > 0 then NewPoint.x:=0
else if NewPoint.x <(Panel1.Width - Image1.Width)then
NewPoint.x:= Panel1.Width - Image1.Width;

if NewPoint.y > 0 then NewPoint.y:=0
else if NewPoint.y <(Panel1.Height - Image1.Height)then
NewPoint.y:= Panel1.Height - Image1.Height;

with Image1, NewPoint do SetBounds(x, y, Width, Height);
end;
end;




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




Наверх





Память: 0.72 MB
Время: 0.017 c
1-57464           Nuce                  2002-03-04 02:26  2002.03.18  
PaintBox?Наболело...


4-57565           Delphi5.01            2002-01-19 20:56  2002.03.18  
Почему форма разных размеров в Win98 и Win95.


14-57515          McSimm                2002-02-04 17:53  2002.03.18  
Клиент для форумов. Dolphin 1.1


3-57295           Андре                 2002-02-18 17:33  2002.03.18  
Хранилище документов


1-57391           Deus                  2002-03-01 20:45  2002.03.18  
А вот интересно...