Прокрутка, ScrollBox
Следующий пример перхватывает сообщения скроллирования в компоненте TScrollBox, тем самым синхронизируя два скролбара. Если один из скролбаров изменяет своё положение, то значение второго скролбара изменяется на такую же величину. Сообщения скролирования перехватываются путём сабклассинга оконной процедуры (WinProc) у скролбара.
- Подробности
- Родительская категория: VCL
- Категория: Прокрутка, ScrollBox
Как сделать плавную прокрутку?
- Подробности
- Родительская категория: VCL
- Категория: Прокрутка, ScrollBox
Решить задачу помогут обработчики событий OnScroll (в данном примере два компонента ScrollBox (ScrollBar1 и ScrollBar2) расположены на форме TMainForm):
Code: |
procedure TMainForm.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin ScrollBar2.Position:=ScrollPos; end;
procedure TMainForm.ScrollBar2Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin ScrollBar1.Position := ScrollPos; end; |
- Подробности
- Родительская категория: VCL
- Категория: Прокрутка, ScrollBox
Нужные нам свойства существуют, но вынесены в секцию Protected предка DBGrid: TCustomGrid. Наиболее правильным способом было бы создание класса наследника от TDBGrid с выводом ScrollBars в секцию Public, но можно обойтись и без этого следующим способом:
Code: |
Type TFake=class(TCustomGrid);
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin TFake(DBGrid1).ScrollBars:=ssVertical; end; |
- Подробности
- Родительская категория: VCL
- Категория: Прокрутка, ScrollBox
Антон Григорьев
В Windows предусмотрено сообщение WM_CtlColorScrollBar, которое посылается окну, содержащему элементы управления ScrollBar (полосы прокрутки). В ответ на это сообщение окно должно вернуть системе кисть, которой надо закрасить полосу прокрутки. С помощью WM_CtlColorScrollBar можно получать разноцветные полосы прокрутки, что иногда бывает достаточно красиво.
- Подробности
- Родительская категория: VCL
- Категория: Прокрутка, ScrollBox
Установите свойтсво ScrollBar.TabStop в False.
- Подробности
- Родительская категория: VCL
- Категория: Прокрутка, ScrollBox