Nick |
Отправлено: 12.07.2003, 09:07 |
|
Машинист паровоза
Группа: Участник
Сообщений: 247
|
У DBGrid есть полоса прокрутки.
Но дело в том что если DataSource = IBQuery
полоса прокрутки правильно показывает лишь если перейти на последнюю запись и сдела FetchAll (что одно и тоже).
У меня есть процедура которая возвращает Количество записей
но я не как не могу добраться до скрола чтоб установить нужное значение.
В ДОСе был метод типа SetState(Min, Max, Page);
|
|
Gedeon |
Отправлено: 24.05.2004, 11:48 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
QUOTE |
The SBM_SETRANGE message is sent to set the minimum and maximum position values for the scroll bar control.
Applications should not send this message directly. Instead, they should use the SetScrollRange function. A window receives this message through its WindowProc function. Applications which implement a custom scroll bar control must respond to these messages for the SetScrollRange function to work properly.
Syntax
To send this message, call the SendMessage function as follows.
lResult = SendMessage( // returns LRESULT in lResult (HWND) hWndControl, // handle to destination control (UINT) SBM_SETRANGE, // message ID (WPARAM) wParam, // = (WPARAM) () wParam; (LPARAM) lParam // = (LPARAM) () lParam; );
|
MSDN
Отредактировано Gedeon — 24/05/2004, 12:52
|
|
AVC |
Отправлено: 24.05.2004, 13:23 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
VScroll рассчитывает свои параметры здесь dbgrids.pas::TCustomDBGrid.UpdateScrollBar по значению TDataLink->DataSet->RecordCount
Для достижения желаемого эффекта можно создать наследника TDataSet и перекрыть метод GetRecordCount. Должно сработать.
|
|