Вверх ↑
Этот топик читают: Гость
Ответов: 1841
Рейтинг: 369
#1: 2011-03-19 07:42:09 ЛС | профиль | цитата
Всем привет!
Вот столкнулся при разработке очередного проекта со странным поведением ChildScrollBox.
Проблемы три:
1) При программной установке положения скролла, установленная позиция отличается от той что содержит точка VPos.
2) Так же не могу программно (doVScroll) прокрутить до конца скролл.
3) После первой прокрутки все элементы помещённые в ChildScrollBox смещаются в лево...

Схема:
code_23021.txt

p.s. вот
------------ Дoбавленo в 04.46:
hiasm: v4.04 b185 (17:18 20.01.2011)
svn: 155
os: win7 sp1
------------ Дoбавленo в 07.41:
CriDos писал(а):
1) При программной установке положения скролла, установленная позиция отличается от той что содержит точка VPos.
2) Так же не могу программно (doVScroll) прокрутить до конца скролл.

Нашёл IC в другой теме... (ChildScrollBox)
С ним вроде программная прокрутка (HScroll & VScroll) работают корректно...

Схема с IC:

Add(MainForm,4574870,280,126)
{
Width=365
Height=284
Caption="Пример использования ChildScrollBox"
}
Add(ChildScrollBox,241389,447,91)
{
}
BEGIN_SDK
Add(EditMulti,2162689,21,21)
{
VarCount=1
Width=202
Height=88
link(Var1,13915098:Handle,[(27,95)(69,95)])
}
Add(ScrollBox,13915098,49,49)
{
Left=15
Top=10
Width=330
Height=138
Point(Handle)
}
Add(Label,4432944,119,49)
{
Left=145
Top=10
Width=30
Height=555
Caption="Label
1
2
3
4
5
6
7
8
9
0
-1
2
3
43
4
5
6
6
7
78
9
9
99
9
9
9
9
9
9
9
99
9
9
9

99
9
9
9
9
9
y
u
7"
AutoSize=1
Point(Left)
}
END_SDK
Add(Button,8719339,357,142)
{
Left=90
Top=180
Width=160
Caption="Прокрутить до конца"
Data=Integer(430)
link(onClick,14550843:doWork2,[])
AddHint(26,47,33,13,Data)
AddHint(-111,49,122,13,Caption)
}
Add(Button,1752502,357,107)
{
Left=90
Top=155
Width=160
Caption="Прокрутить до середины"
Data=Integer(215)
link(onClick,14550843:doWork1,[(410,113)])
AddHint(16,-30,33,13,Data)
AddHint(-140,-28,142,13,Caption)
}
Add(HubEx,14550843,406,142)
{
link(onEvent,3996721:VScroll,[])
}
Add(InlineCode,3996721,447,135)
{
WorkPoints=#7:HScroll|7:VScroll|
VarPoints=#4:HPos|4:VPos|
DataPoints=#3:Wnd|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses Messages,Windows,kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|17: wnd:THI_Event;|50: procedure HScroll(var _Data:TData; Index:word);|50: procedure VScroll(var _Data:TData; Index:word);|47: procedure HPos(var _Data:TData; Index:word);|47: procedure VPos(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|30:procedure THiAsmClass.HScroll;|11:var h:HWND;|16: Pos:integer;|31: lpMinPos,lpMaxPos: Integer;|5:begin|28: h := ToIntegerEvent(Wnd);|27: Pos := ToInteger(_Data);|51: GetScrollRange( h, SB_HORZ, lpMinPos, lpMaxPos);|42: if Pos > lpMaxPos then Pos := lpMaxPos;|45: if Pos < lpMinPos then Pos := lpMinPos; |39: SetScrollPos(h, SB_HORZ, Pos, True);|37: SendMessage(h, WM_HSCROLL, -1, 0);|4:end;|0:|30:procedure THiAsmClass.VScroll;|11:var h:HWND;|16: Pos:integer;|31: lpMinPos,lpMaxPos: Integer;|5:begin|28: h := ToIntegerEvent(Wnd);|27: Pos := ToInteger(_Data);|51: GetScrollRange( h, SB_VERT, lpMinPos, lpMaxPos);|42: if Pos > lpMaxPos then Pos := lpMaxPos;|45: if Pos < lpMinPos then Pos := lpMinPos; |39: SetScrollPos(h, SB_VERT, Pos, True);|37: SendMessage(h, WM_VSCROLL, -1, 0);|4:end;|0:|27:procedure THiAsmClass.HPos;|20:var SI: TScrollInfo;|5:begin|27: SI.cbSize := Sizeof(SI);|23: SI.fMask := SIF_POS;|51: GetScrollInfo(ToIntegerEvent(Wnd), SB_HORZ, SI);|28: dtInteger(_Data,SI.nPos);|4:end;|0:|27:procedure THiAsmClass.VPos;|20:var SI: TScrollInfo;|5:begin|27: SI.cbSize := Sizeof(SI);|23: SI.fMask := SIF_POS;|51: GetScrollInfo(ToIntegerEvent(Wnd), SB_VERT, SI);|28: dtInteger(_Data,SI.nPos);|4:end;|0:|0:|4:end.|
link(Wnd,241389:Var1,[])
}
Add(Label,2723846,500,216)
{
Left=90
Top=210
Width=87
Height=17
Caption="VPos:"
}
Add(Timer,10753169,396,216)
{
Interval=0
link(onTimer,8800274:doStrCat,[])
}
Add(StrCat,8800274,447,216)
{
Str1="VPos: "
link(onStrCat,2723846:doText,[])
link(Str2,3996721:VPos,[])
}
карма: 1
0
файлы: 1code_23021.txt [2.1KB] [401]
vip
#1.1контекстная реклама от партнеров
Разработчик
Ответов: 26066
Рейтинг: 2120
#2: 2011-03-19 12:55:58 ЛС | профиль | цитата
Исправлено
карма: 22

1
Голосовали:CriDos
2
Сообщение
...
Прикрепленные файлы
(файлы не залиты)