IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Определение наличия вертикального скроллбара у DrawGrid
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Привет всем.

Такая проблема. Есть форма, на ней - компонент TDrawGrid. В этом DrawGrid'е в процессе работы программы отображается произвольное кол-во строк. У DrawGrid'а свойство ScrollBars установлено в ssVertical.
Возможно ли в run-time как-то узнать, имеется ли в данный конкретный момент у DrawGrid'а вертикальный скроллбар или нет ? Свойство DrawGrid.ClientWidth постоянно возвращает величину, скорректированную
на значение ширины скроллбара, независимо от того, есть он или нет.

Заранее благодарю.

ps. Delphi версии 7

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Помнится мне, что делали вот такой WinAPI-шный трюк:

function has_vscrollbar(h: HWND): boolean;
var
sInfo: SCROLLINFO;
b: LongBool;
begin
sInfo.cbSize := SizeOf(sInfo);
sInfo.fMask := SIF_ALL;
b := GetScrollInfo(h, SB_VERT, sInfo);
result := b and (sInfo.nMax <> 100);
end;

, дело все в том, что если у окна нет скроллбара, то то GetScrollInfo либо возвращает False (что, кстати, логично - ведь его нет), либо все-таки True (обычно при первом вызове), но максимальное значение установлено в 100. Если же СкроллБар есть, то nMax установлен в 127...

Вызывать - с DrawGrid1.Handle ... Попробуй.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 9.05.2024 3:55
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name