Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Image и ScrollBar


Ender ©   (2002-09-13 20:01:00) 

Уважаемые мастера, как сделать так, чтоб при изминении Position
ScrollBar"а битмап в Image смещался соответствующим образом, как например в MS Paint?


Ender   (2002-09-14 00:24:00) [1]

Спасибо всем :)


mukha   (2002-09-13 23:00:00) [2]

Всё таки TImage и TScrollBar имеют преимущество перед TScrollBox.
Вот пример (код рабочий, проверил):
</unit Unit1;

interface

uses
Windows, Jpeg, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Panel1: TPanel;
Image1: TImage;
ScrollBarHor: TScrollBar;
ScrollBarVert: TScrollBar;
procedure FormCreate(Sender: TObject);
procedure ScrollBarHorChange(Sender: TObject);
procedure ScrollBarVertChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
Panel1.Caption:="";
Image1.Autosize:=true;
Image1.Align:= alNone;
ScrollBarHor.Min:=0;
ScrollBarVert.Min:=0;
Image1.Picture.LoadFromFile("C:\Delphi5\Projects\A\Фото.jpg");
ScrollBarHor.Max:=Image1.Picture.Width-Panel1.Width;
ScrollBarvert.Max:=Image1.Picture.Height-Panel1.Height;
end;

procedure TForm1.ScrollBarHorChange(Sender: TObject);
begin
Image1.Left:=-ScrollBarHor.Position;
end;

procedure TForm1.ScrollBarVertChange(Sender: TObject);
begin
Image1.Top:=-ScrollBarVert.Position;
end;

end.CODE>


softland   (2002-09-13 20:27:00) [3]

Вот черт, действительно прав TTCustomDelphiMaster, надо TScrollBox :-( извините.


softland   (2002-09-13 20:25:00) [4]

Кладешь на форму sb : TScrollBar; в него кладешь im : TImage;
в инспекторе у im устанавливаешь ширину и высоту своего рисунка, конечно можно и в run time. Если размер рисунка больше чем у sb, то он будет скролинговаться, вроде всё...
Или я чего-то не понял???


TTCustomDelphiMaster   (2002-09-13 20:22:00) [5]

Используйте ScrollBox


Алексей Ким   (2002-09-13 20:08:00) [6]

s - timage, panel1 - рамка, sb - scroolbar
s.Left := panel1.Width-round((sb.Position / sb.Max) * panel1.Width);
ну сам доделаешь толька это придумал


Наверх

Титульная страница Поиск, карта сайта Написать письмо