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

Вниз

Проблема со 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 вся ветка

Форум: "KOL";
Текущий архив: 2010.02.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
4-1228651381
Fildy
2008-12-07 15:03
2010.02.07
определение родильского PID


15-1258973257
картман
2009-11-23 13:47
2010.02.07
Классификатор


15-1259616617
Юрий
2009-12-01 00:30
2010.02.07
С днем рождения ! 1 декабря 2009 вторник


2-1260531371
alex ford
2009-12-11 14:36
2010.02.07
закинуть в ресурсы файлы


2-1260564996
DIM
2009-12-11 23:56
2010.02.07
Не понятно откуда берется такое значение переменной





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский