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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
1-47393
GrayFox
2002-07-01 19:02
2002.07.15
Работа с списками контактов в ICQ


14-47811
Voldemar
2002-06-16 23:04
2002.07.15
Кто завтра (17.06) играет в 10.20 и 15.20 (Worldcup)


3-47110
Oleon
2002-06-21 17:30
2002.07.15
Как в InterBase организовать цикл?.


1-47546
Ricks
2002-06-28 01:12
2002.07.15
Visual styles


14-47771
MaximatorVeter
2002-06-11 19:41
2002.07.15
Некоторые символы выводятся только после двойного нажатия.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский