![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с TScrollBox [D6, WinXP]
Th © (2003-01-16 20:11:00)Кто знает, как заставить TScrollBox, а точнее TScrollingWinControl НЕ СКРЫВАТЬ свои TControlScrollBar"ы когда нет нужды с скроллинге, а делать их предположим Disabled (а ля Photoshop)?
Игорь Шевченко (2003-01-17 17:16:00) [1]Th © (17.01.03 17:13)
В XP версия, естественно, более поздняя. Но рекомедую посмотреть, что говорится по поводу FlatScrollbars и WinXP в MSDN. В частности, про функции InitializeFlatSB и прочие...
Th (2003-01-17 17:13:00) [2]Еще небольшой вопрос:
Под 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 или я чего-то не понимаю. ;(
Th (2003-01-17 17:08:00) [3]Вот пришлось так и делать ;( и все из-за одной строки перед вызовом SetScrollInfo
в оригинале: ScrollInfo.fMask := SIF_ALL;
а мне надо: ScrollInfo.fMask := SIF_ALL or SIF_DISABLENOSCROLL;
Игорь Шевченко (2003-01-17 15:47:00) [4]
> Обе функции объявлены как private и естественно не virtual,
> что сами понимаете и обламывает все.
Теперь понятно. Можно написать аналог, унаследовав его от TWinControl с требуемым поведением. Самый безопасный способ.
Th (2003-01-17 15:27:00) [5]Большое спасибо, Игорь
Игорь Шевченко (2003-01-17 15:24:00) [6]Project|Options|Compiler|Use Debug DCU
+
Project|Options|Directories...
в Search Path добавить $(DELPHI)\Source\Vcl
Th (2003-01-17 15:23:00) [7]Так все-таки как VCL перекомпилировать??
Th (2003-01-17 15:04:00) [8]Кстати для экспериментов с исходным кодом удобно включить компиляцию VCL при компиляции проекта - я когда-то в 3 делфи это делал, а как непомню. Подскажите, как это сделать?
Th (2003-01-17 14:59:00) [9]Они говорят следующее: в TScrollingWinControl есть две функции
одна NeedScrollbarVisible определяет надо ли показывать Scrollbar и UpdateScrollBars по результатам работы NeedScrollBarVisible отображает (илбо скрывает) ScrollBar. Обе функции объявлены как private и естественно не virtual, что сами понимаете и обламывает все. Поэтому и задаю вопрос.
Игорь Шевченко (2003-01-17 14:20:00) [10]А что говорят исходные тексты ?
Delirium^.Tremens (2003-01-17 14:04:00) [11]Нет, не помогает ShowScrollBar(), он (ScrollBox) его сразу отключает.
Delirium^.Tremens (2003-01-17 13:52:00) [12]ShowScrollBar()
Th (2003-01-17 13:39:00) [13]Неужели никто этим вопросом не интересовался?? ;)