![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 29.04.2011
Сообщений: 51
|
![]()
Привет.
Знаю что у компонента FrameBar есть родной ScrollBar, но я его отключил по той простой причине, что мне необходимо, чтобы ScrollBar был всегда видимый, независимо от того, заходят Fame за пределы FarmeBar по вертикали или нет. Поскольку я не смог найти у встроенного ScrollBar параметра для постоянного активного состояния, решил прикрепить внешний ScrollBar. И тут то всё девлин! Как внешний ScrollBar синхронизировать с FrameBar даже примерного представления не имею! Прошу помощи. p.s. ну или подскажите как альтернатива, как в FrameBar активировать возможность прокрутки колесиком. просто тогда уберу scrollbar. в понедельник (тобеж завтра) надо сдавать. Последний раз редактировалось BingoBongo; 01.05.2011 в 06:26. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 29.04.2011
Сообщений: 51
|
![]()
пока нашел только вот это (((
procedure TMainForm.sScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin FrameBar1.VertScrollBar.Position := ScrollPos; end; но когда я отключаю у FrameBar вертикальный скролл, внешний ScrollBar по этой процедуре не перехватывает событие. ((( шляпа вообщем ( может кто знает как просто на просто активировать колесико во FrameBar?? это было бы такое облегчение. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 29.04.2011
Сообщений: 51
|
![]()
function TControlScrollBar.IsScrollBarVisibl e: Boolean;
var Style: Longint; begin Style := WS_HSCROLL; if Kind = sbVertical then Style := WS_VSCROLL; Result := (Visible) and (GetWindowLong(FControl.Handle, GWL_STYLE) and Style <> 0); end; это функция (встроенная) выдает результат видимости родного ScrollBar компонента FrameBar. Можно как-нибудь используя эту функцию, сделать скролл постоянно активным, а не только когда Frame за пределы видимой части уходят?? (( |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 06.12.2010
Сообщений: 300
|
![]()
А зачем вам нужно делать скролбар всегда видимым?
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 29.04.2011
Сообщений: 51
|
![]()
После того как он появляется, объекты расположенные во вложенном Frame уже не центрованные (они не по центру). Из-за него расстояние справа меньше чем слева.
А вот если он будет постоянным, так и объекты на Frame будут всегда по ровно по-центру. Я же говорю, вполне сойдет вариант отключить ScrollBar полностью и сделать функциональным колесико мышки. Проблема в том, что я не знаю как колесико сделать активным для FrameBar ( |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
![]()
Метод получается громоздким, но другой мне не известен.
В закладке Additional палитры компонентов есть не визуальный компонет ApplicationEvents. Его поместить на главную форму и создать процедуру в свойстве OnMessage. В обработчике событий должен быть такой код: Код:
Во фрейме должен быть обработчик сообщений от колеса: Код:
Недостатки есть. Если указатель мыши будет на компонентом, который вставлен во фрейм, то фрейм не будет получать сообщение от колеса. Последний раз редактировалось Прик; 01.05.2011 в 20:47. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
PicShow vs. FrameBar | BingoBongo | Компоненты Delphi | 3 | 30.04.2011 13:43 |
Scrollbar | bill | JavaScript, Ajax | 2 | 10.11.2010 15:16 |
scrollbar | grater83 | Общие вопросы Delphi | 2 | 08.10.2009 12:00 |
ScrollBar | Rebel123 | Общие вопросы Delphi | 2 | 19.07.2009 11:35 |