Я хотел бы изменить ширину прокрутки TFrame.
Я знаю, что я мог бы изменить все ScrollingBars в системе:Как изменить ширину ScrollBar?
SystemParametersInfo(SPI_SETNONCLIENTMETRICS,....
Но как я это делаю для конкретного WinControl?
Я хотел бы изменить ширину прокрутки TFrame.
Я знаю, что я мог бы изменить все ScrollingBars в системе:Как изменить ширину ScrollBar?
SystemParametersInfo(SPI_SETNONCLIENTMETRICS,....
Но как я это делаю для конкретного WinControl?
Большая часть кода в Delphi зависит от ширины полос прокрутки как фиксированной настройки системы, поэтому вы не можете изменять ширину, не нарушая управление. (Не без перезаписи TControlScrollBar и связанных с ним элементов управления в VCL.)
Вы можете, конечно, скрыть полосы прокрутки по умолчанию элемента управления и добавить рядом с ним свои собственные компоненты TScrollbar.
Это также показывает самую большую разницу между типами прокрутки: TScrollBar имеет собственный дескриптор Windows, а TControlScrollBar берет его из связанного элемента управления.
Вы можете попробовать что-то вроде этого:
your_frame.HorzScrollBar.Size := 50;
your_frame.HorzScrollBar.ButtonSize := your_frame.HorzScrollBar.Size;
Это * возможно * работа, если вы используете плоские полосы прокрутки и имеют COMCTL32.DLL ниже версии 6. Смотрите также http://msdn.microsoft.com/en -us/library/bb775438 (VS.85) .aspx и http://msdn.microsoft.com/en-us/library/bb787529(VS.85).aspx –