Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-47541
sector
2002-06-27 22:23
2002.07.15
помогите ответом


14-47753
Дмитрий Баранов
2002-06-13 13:07
2002.07.15
Знатокам Perl


1-47578
d_oleg
2002-06-28 13:28
2002.07.15
перемещение TToolButton в run-time


3-47172
Sour
2002-06-19 07:03
2002.07.15
IBSever запуск и закрытие?


1-47532
Board
2002-06-27 19:12
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский