Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26068
Рейтинг: 2121
#166: 2008-08-20 15:53:42 ЛС | профиль | цитата
andrestudio писал(а):
выручите ссылкой или сам IC если можно

А черт его знает, где этот IC, может у Леонида еще остался. Я тут с перестановками HiAsm'a порастерял большинство примеров
карма: 22

0
Ответов: 5227
Рейтинг: 587
#167: 2008-08-20 17:15:15 ЛС | профиль | цитата
Леонид!!!, на тебя вся надежда , nesco а что раньше мешало в ChildScrollBox эту функцию встроить? У меня допустим скролы в ChildScrollBox неработают от колеса мыши, это так и должно быть
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Разработчик
Ответов: 26068
Рейтинг: 2121
#168: 2008-08-20 17:24:23 ЛС | профиль | цитата
andrestudio писал(а):
У меня допустим скролы в ChildScrollBox неработают от колеса мыши

И у меня не работают
andrestudio писал(а):
а что раньше мешало в ChildScrollBox эту функцию встроить?

А я чего-то от специалистов не услышал вразумительного ответа о его необходимости
карма: 22

0
Ответов: 5227
Рейтинг: 587
#169: 2008-08-20 17:52:06 ЛС | профиль | цитата
Ну честно говоря как минимум странно. Ну допустим програмно может быть и необезательно но от колеса мыши в зависимости от установленного фокуса (горизонтальный, вертикальный) как бы сам компонент велит, пускай может эту процедуру можно отключать где она ненужна. Уважаемые не оставайтесь в стороне ибо есть вероятность того что и Вы можете оказаться в такой ситуации, предлагаю обсудить этот контрол на предмет его неполноценности.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 3655
Рейтинг: 69
#170: 2008-08-20 17:55:35 ЛС | профиль | цитата
andrestudio писал(а):
предлагаю обсудить этот контрол на предмет его неполноценности.

Мне кажется ответ однозначен - если есть скрол он должен работать от колеса.
Везде так!!!!!!
карма: 0

1
Голосовали:Konst
Ответов: 16884
Рейтинг: 1239
#171: 2008-08-20 18:27:20 ЛС | профиль | цитата
Вячеслав писал(а):
если есть скрол он должен работать от колеса

"Вор должен сидеть в тюрьме !"
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26068
Рейтинг: 2121
#172: 2008-08-20 19:01:49 ЛС | профиль | цитата
Вячеслав писал(а):
Везде так!!!!!!

Ну так и сделай "как везде", или предложения выложи -- как сделать
карма: 22

0
Ответов: 3851
Рейтинг: 159
#173: 2008-08-20 20:06:49 ЛС | профиль | цитата
andrestudio писал(а):
не оставайтесь в стороне
делал таблицу на этом боксе - скрола очень нехватает, также не хватает контрола - типа doEnsureVisible или хотя бы типа PgDown/Up.

Помнится, не очень давно кто-то тоже "удивлялся" отсутствию скролов у етого элемента. Кароче +2.

карма: 0
начавший
0
Ответов: 199
Рейтинг: 44
#174: 2008-08-20 22:45:26 ЛС | профиль | цитата
Поддерживаю, скрол необходим, но мне например нужен и программный скрол тоже.
карма: 0

0
Разработчик
Ответов: 26068
Рейтинг: 2121
#175: 2008-08-20 22:50:39 ЛС | профиль | цитата
Андрей. писал(а):
делал таблицу на этом боксе

А что, обычная таблица скролл разве не поддерживает

Я, конечно, понимаю -- использовать этот скролл для картинок, но вот для таблицы ???
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#176: 2008-08-20 23:34:26 ЛС | профиль | цитата
Имея во всех Box-ах точку doEnsureVisible, можно свободно организовать и PageUp и PageDown и перейти в начало и перейти в конец.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 3655
Рейтинг: 69
#177: 2008-08-21 00:15:08 ЛС | профиль | цитата
nesco писал(а):
или предложения выложи -- как сделать

Вот может это поможет.
http://www.delphiworld.narod.ru/base/other_windows2.html
------------ Дoбавленo:

Или это
Прокрутка для TListView или TTreeView


// KEYWORDS: SendMessage, WM_HSCROLL, WM_VSCROLL

// scroll a ListView vertically down

SendMessage(ListView1->Handle, WM_VSCROLL, SB_LINEDOWN, 0);

// scroll a TreeView vertically up

SendMessage(TreeView1->Handle, WM_VSCROLL, SB_LINEUP, 0);

// Here are some other scroll parameters that can be sent...

{ SB_BOTTOM Scrolls to the lower right. SB_ENDSCROLL Ends scroll. SB_LINEDOWN Scrolls one line down. SB_LINEUP Scrolls one line up. SB_PAGEDOWN Scrolls one page down. SB_PAGEUP Scrolls one page up. SB_TOP Scrolls to the upper left. }


------------ Дoбавленo:

Или это
Как перехватить сообщения прокрутки в TScrollBox

Следующий пример перхватывает сообщения скроллирования в компоненте TScrollBox, тем самым синхронизируя два скролбара. Если один из скролбаров изменяет своё положение, то значение второго скролбара изменяется на такую же величину. Сообщения скролирования перехватываются путём сабклассинга оконной процедуры (WinProc) у скролбара.


type {$IFDEF WIN32}
WParameter = LongInt;
{$ELSE}
WParameter = Word;
{$ENDIF}
LParameter = LongInt;
{Declare a variable to hold the window procedure we are replacing}
var OldWindowProc : Pointer;
function NewWindowProc(WindowHandle : hWnd; TheMessage : WParameter;
ParamW : WParameter; ParamL : LParameter) : LongInt
{$IFDEF WIN32} stdcall;
{$ELSE} ;
export;
{$ENDIF} var TheRangeMin : integer;
TheRangeMax : integer;
TheRange : integer;
begin
if TheMessage = WM_VSCROLL then
begin
{Get the min and max range of the horizontal scroll box}
GetScrollRange(WindowHandle, SB_HORZ, TheRangeMin, TheRangeMax);
{Get the vertical scroll box position}
TheRange := GetScrollPos(WindowHandle, SB_VERT);
{Make sure we wont exceed the range}
if TheRange < TheRangeMin then
TheRange := TheRangeMin else
if TheRange > TheRangeMax then
TheRange := TheRangeMax;
{Set the horizontal scroll bar}
SetScrollPos(WindowHandle, SB_HORZ, TheRange, true);
end;
if TheMessage = WM_HSCROLL then
begin
{Get the min and max range of the horizontal scroll box}
GetScrollRange(WindowHandle, SB_VERT, heRangeMin, TheRangeMax);
{Get the horizontal scroll box position}
TheRange := GetScrollPos(WindowHandle, SB_HORZ);
{Make sure we wont exceed the range}
if TheRange < TheRangeMin then
TheRange := TheRangeMin else
if TheRange > TheRangeMax then
TheRange := TheRangeMax;
{Set the vertical scroll bar}
SetScrollPos(WindowHandle, SB_VERT, TheRange, true);
end;
{Call the old Window procedure to allow processing of the message.}
NewWindowProc := CallWindowProc(OldWindowProc, WindowHandle,
TheMessage, ParamW, ParamL);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
{Set the new window procedure for the control and remember
the old window procedure.}
OldWindowProc := Pointer(SetWindowLong(ScrollBox1.Handle,
GWL_WNDPROC, LongInt(@NewWindowProc)));
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
{Set the window procedure back to the old window procedure.}

SetWindowLong(ScrollBox1.Handle, GWL_WNDPROC, LongInt(OldWindowProc));
end;



карма: 0

0
Ответов: 3851
Рейтинг: 159
#178: 2008-08-21 13:13:52 ЛС | профиль | цитата
nesco писал(а):
А что, обычная таблица скролл разве не поддерживает
не - мне нада была таблица на панелях (см Этюды)..
карма: 0
начавший
0
Разработчик
Ответов: 26068
Рейтинг: 2121
#179: 2008-08-21 13:15:16 ЛС | профиль | цитата
Андрей. писал(а):
не - мне нада была таблица на панелях

Понял
карма: 22

0
Ответов: 5227
Рейтинг: 587
#180: 2008-08-21 13:22:43 ЛС | профиль | цитата
Ну что остаётся только надеятся что когда нибудь всёже ChildScrollBox попадёт в очередь на доработку, а это уже плюс
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)