Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
ВнизDBGrid and ScrollBar Найти похожие ветки
← →
pinV (2002-07-03 17:08) [0]Уважаемый All, подскажите пожалуйста как поймать событие появления(исчезновения) ScrollBar в DBGrid.
← →
Skier (2002-07-03 17:10) [1]никак
← →
pinV (2002-07-03 17:21) [2]я имею ввиду возможность ловли события в неком потомке DBGrid
совсем нельзя, никак?
← →
Nebuchadnezzar (2002-07-03 17:24) [3]Зная размер DBGrid и высоту каждой строки в принципе наверно несложно и подсчитать сколько надо строк что бы появился (исчезнул) ScrollBar...
← →
Skier (2002-07-03 17:24) [4]>pinV
Есть метод TCustomDBGrid.UpdateScrollBar, но он
private :(
А вообще-то зачем тебе это всё ?
По-другому никак нельзя ??
← →
pinV (2002-07-03 17:32) [5]просто я делаю компонент, у которого при resize пропорционально изменяються размеры колонок, с целью заполнения свободного пространства. Соотв ScrollBar оказывает самое непосредственно влияние на расчёт размеров.
Возможно это делаеться как то не так и намного проще, возможно вообще не должно делаеться но ....
← →
Кулюкин Олег (2002-07-03 17:38) [6]Тогда надо не отлавливать момент появления скролбаров, а пересчитывать размеры колонок после изменения размеров конмонента.
Попробуйте функции GetScrollInfo, GetSystemMetrics(SM_CXVSCROLL) и GetSystemMetrics(SM_CYHSCROLL).
← →
Skier (2002-07-03 17:41) [7]>pinV
Кулюкин Олег прав.
← →
pinV (2002-07-03 17:44) [8]:)))))) Не подходит
привожу пример, при удалении в гриде не остаёться ни одной строчки. До это скролл присутствовал, после этого пропал. Размер компоненты не менялся
← →
Кулюкин Олег (2002-07-03 17:47) [9]Значит надо написать функцию CalcSize и звать ее когда сочтете нужным.
ИМХО, анимация без желания юзверя - это плохо (хотя сам так делал :)
← →
pinV (2002-07-03 17:51) [10]про CalсSize можно поподробнее, не много не понятно когда её звать.
да GetScrollInfo, GetSystemMetrics(SM_CXVSCROLL) конечно же использовались
← →
Игорь Шевченко (2002-07-03 17:55) [11]А зачем определять событие исчезновения ?
Лучше в тот момент, когда надо посчитать, поинтересоваться, а есть ли scrollbar у окна?
var
Style : LongInt;
Style := GetWindowLong(YourGrid.Handle, GWL_STYLE);
if (Style AND WS_VSCROLL { WS_HSCROLL } ) <> 0 then
Делать то, что при наличествующем scrollbar
else
Делать то, что при отсутсвующем scrollbar
С уважением,
← →
Кулюкин Олег (2002-07-03 17:57) [12]CalсSize - это функция которую надо написать Вам :)
Просто, когда я решал подобную задачу я ее назвал именно так.
А звать ее надо
1. После изменения размеров
2. после изменения в датасете
← →
Fiend (2002-07-03 17:57) [13]То pinV
Никакого события не происходит когда они прячутся или появляются.
Просто когда в ГРИДе меняются кол=во строк, то он заново проставляет SetScrollInfo
← →
pinV (2002-07-03 17:59) [14]уф, это понятно, но момента не возникает
размер компоненты и размеры столбцов в моём примере (при удалени строчки) не меняються.
← →
pinV (2002-07-03 18:05) [15]всё спасибо, натолкнули на 2 продуктивные мысли, дальше сам :))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c