Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.02.07;
Скачать: CL | DM;

Вниз

Проблема со ScrollBox.   Найти похожие ветки 

 
Valera   (2008-05-12 17:43) [0]

Всем привет.
Возможно я вас достал своими вопросами но пока я в KOL плохо ориентируюсь.
У меня вопрос как мне вставить ScrollBox в PaintBox так если в нем большая картинка то он становился видимым и я мог бы прокручивать картинку в нем. А если картинка маленкая то он изчезал.


program paintMy;

uses
Windows,
messages,
KOL;

var
form,PaintBox,ScrollBox:PControl;
PaintBmp,MainTemp:Pbitmap;
xD,yD:integer;
mousedown:boolean;

procedure MouseDown_(Dummy : Pointer;Sender: PControl; var Mouse: TMouseEventData );
begin
MainTemp.CopyRect(MainTemp.BoundsRect, PaintBmp,PaintBmp.BoundsRect);
xD:=Mouse.x;
yd:=Mouse.y;
PaintBox.Invalidate;
mousedown:=True;
end;

procedure MouseMove_(Dummy : Pointer; Sender: PControl; var Mouse: TMouseEventData );
begin
IF mousedown then begin
  PaintBmp.CopyRect(PaintBmp.BoundsRect, MainTemp, MainTemp.BoundsRect);
  PaintBmp.Canvas.MoveTo(xd,yd);
  PaintBmp.Canvas.LineTo(Mouse.x,Mouse.y);
end;
PaintBox.Invalidate;
end;

procedure MouseUp_(Dummy : Pointer; Sender: PControl; var Mouse: TMouseEventData );
begin
if mousedown then begin
  PaintBmp.CopyRect(PaintBmp.BoundsRect, MainTemp, MainTemp.BoundsRect);
  PaintBmp.Canvas.MoveTo(xd,yd);
  PaintBmp.Canvas.LineTo(Mouse.x,Mouse.y);
end;
PaintBox.Invalidate;
mousedown:=False;
end;

procedure Paint( Dummy : Pointer; Sender: PControl; DC: HDC );
begin
PaintBmp.Draw(DC,0,0);
end;

procedure ChangeScrollBox( Dummy : Pointer; Sender: PObj);
begin

end;

begin
form:=NewForm(nil,"Paint").SetSize(800,800);

PaintBox:=NewPaintBox(Form);
PaintBox.Align:=caClient;
PaintBox.OnMouseDown:= TOnMouse( MakeMethod( nil, @MouseDown_ ) );
PaintBox.OnMouseMove:= TOnMouse( MakeMethod( nil, @MouseMove_ ) );
PaintBox.OnMouseUp:= TOnMouse( MakeMethod( nil, @MouseUp_ ) );
PaintBox.OnPaint:= TOnPaint( MakeMethod( nil, @Paint ) );
///**************************************************************
MainTemp:=newBitmap(PaintBox.Width,PaintBox.Height);
MainTemp.Invert;
PaintBmp:=newBitmap(PaintBox.Width,PaintBox.Height);
PaintBmp.Invert;

///ScrollBox:=NewScrollBox(Form,esnone,[sbHorizontal,sbVertical]).SetSize(PaintBox. Width,PaintBox.Height);
/////ScrollBox.
///ScrollBox.OnChange:= TOnEvent( MakeMethod( nil, @ChangeScrollBox ) );

Run(form);  ////// çàïóñê ôîðìû

end.



 
D[u]fa   (2008-05-12 18:25) [1]

надо в скроллбокс вставлять пайнтбокс. почитаю книгу про кол, отпадет половина вопросов =)


 
Valera   (2008-05-12 20:43) [2]

Спасибо этого я незнал.


 
Valera   (2008-05-12 21:24) [3]

Дайте ссылку на исходник на kol чтобы там был ScrollBox.А то я так ничего и не сделал.


 
Valera   (2008-05-12 21:25) [4]

Или хотя бы пример работы со Scrollbox.


 
D[u]fa   (2008-05-13 09:54) [5]

там все просто. создал скроллбокс, в него положил пайнтбокс, задал пайнтбоксу большой размер (больше скроллбокса) вот и появились скроллы


 
Barloggg   (2008-05-20 10:28) [6]

а если у тебя размеры паинтбокса будут меняться время от времени, то возможны грабли :) ибо скроллбокс работает по принципу "минимум кода" и не следит особо за координатами вложенных если вроде как нет нужды.

а насчет создания:
создаешь скроллбокс.
потом создаешь паинтбокс, указывая ему в скроллбокс в роли родительского.



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

Текущий архив: 2010.02.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
15-1259865018
andrewtitoff
2009-12-03 21:30
2010.02.07
Кодировка HTTP запросов


2-1260539849
Ху.рБуер
2009-12-11 16:57
2010.02.07
Загрузка файла по FTP (Indy)


15-1259705429
Германн
2009-12-02 01:10
2010.02.07
Или у меня глюки, или что-то изменилось.


1-1236890859
Tatarin
2009-03-12 23:47
2010.02.07
Спецсимволы HTML


15-1259877728
kyn66
2009-12-04 01:02
2010.02.07
Странно ветка исчезла.