Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.27;
Скачать: CL | DM;

Вниз

Работа с TScrollBox   Найти похожие ветки 

 
Th ©   (2003-01-16 20:11) [0]

Кто знает, как заставить TScrollBox, а точнее TScrollingWinControl НЕ СКРЫВАТЬ свои TControlScrollBar"ы когда нет нужды с скроллинге, а делать их предположим Disabled (а ля Photoshop)?


 
Th ©   (2003-01-17 13:39) [1]

Неужели никто этим вопросом не интересовался?? ;)


 
Delirium^.Tremens ©   (2003-01-17 13:52) [2]

ShowScrollBar()


 
Delirium^.Tremens ©   (2003-01-17 14:04) [3]

Нет, не помогает ShowScrollBar(), он (ScrollBox) его сразу отключает.


 
Игорь Шевченко ©   (2003-01-17 14:20) [4]

А что говорят исходные тексты ?


 
Th ©   (2003-01-17 14:59) [5]

Они говорят следующее: в TScrollingWinControl есть две функции
одна NeedScrollbarVisible определяет надо ли показывать Scrollbar и UpdateScrollBars по результатам работы NeedScrollBarVisible отображает (илбо скрывает) ScrollBar. Обе функции объявлены как private и естественно не virtual, что сами понимаете и обламывает все. Поэтому и задаю вопрос.


 
Th ©   (2003-01-17 15:04) [6]

Кстати для экспериментов с исходным кодом удобно включить компиляцию VCL при компиляции проекта - я когда-то в 3 делфи это делал, а как непомню. Подскажите, как это сделать?


 
Th ©   (2003-01-17 15:23) [7]

Так все-таки как VCL перекомпилировать??


 
Игорь Шевченко ©   (2003-01-17 15:24) [8]

Project|Options|Compiler|Use Debug DCU
+
Project|Options|Directories...
в Search Path добавить $(DELPHI)\Source\Vcl


 
Th ©   (2003-01-17 15:27) [9]

Большое спасибо, Игорь


 
Игорь Шевченко ©   (2003-01-17 15:47) [10]


> Обе функции объявлены как private и естественно не virtual,
> что сами понимаете и обламывает все.


Теперь понятно. Можно написать аналог, унаследовав его от TWinControl с требуемым поведением. Самый безопасный способ.


 
Th ©   (2003-01-17 17:08) [11]

Вот пришлось так и делать ;( и все из-за одной строки перед вызовом SetScrollInfo
в оригинале: ScrollInfo.fMask := SIF_ALL;
а мне надо: ScrollInfo.fMask := SIF_ALL or SIF_DISABLENOSCROLL;


 
Th ©   (2003-01-17 17:13) [12]

Еще небольшой вопрос:
Под Win9x у меня в программах работали ScrollBar"ы со стилем FLAT, а под WinXP они почему-то стали игнорировать свойство Style и отрисовываться всегда как REGULAR.
Единственное, что смог поэтому поводу в Delphi Help найти, это вот:
List views only support flat scroll bars if the system has version 472 or later of comctl32.dll.
Получается, что в XP эта библиотека имеет более ранюю версию, чем в 9x или я чего-то не понимаю. ;(


 
Игорь Шевченко ©   (2003-01-17 17:16) [13]

Th © (17.01.03 17:13)

В XP версия, естественно, более поздняя. Но рекомедую посмотреть, что говорится по поводу FlatScrollbars и WinXP в MSDN. В частности, про функции InitializeFlatSB и прочие...



Страницы: 1 вся ветка

Текущий архив: 2003.01.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
14-87032
McSimm
2003-01-08 11:16
2003.01.27
Начните день с хорошего настроения :-)


1-86959
Игорь Шевченко
2003-01-15 12:49
2003.01.27
Вопрос по Integrated Translation Environment


3-86685
Nil
2003-01-08 12:07
2003.01.27
Помогите пожалуста правильно написать SQL-запрос !


3-86694
Вованчик
2003-01-09 11:17
2003.01.27
Bde.pas


14-87026
Big_Rom
2003-01-10 16:41
2003.01.27
посылка сообщения