powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сделать Scroll имеющий ползунок размера пропорционального количеству видимых данных
5 сообщений из 5, страница 1 из 1
Как сделать Scroll имеющий ползунок размера пропорционального количеству видимых данных
    #39924088
Леон4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как сделать чтобы размер ползунка Скролла в гриде был пропорционален количеству скрытых данных. Как же это реализовано в браузерах и других приложениях? Подскажите формулу кто знает/ Пробовал так, но размер не правильный.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
procedure TFEmu1.FormResize(Sender: TObject);
var info: TScrollInfo;
begin
  FillChar(info, SizeOf(info), 0);
  with info do
  begin
    cbsize := SizeOf(info);
    fmask  := SIF_ALL;
    GetScrollInfo(SGMain.Handle, SB_VERT, info);
    fmask := fmask or SIF_PAGE;
    nMin:=0;
    nMax:=100;
    nPage:=TRunc(10*(nmax - nmin)/SGMain.RowCount);
end;
  SetScrollInfo(SgMain.Handle, SB_VERT, info, True);
end;


Также пробовал так но все плохо.
Код: pascal
1.
nPage:=SGMain.VisibleRowCount/SGMain.RowCount*SGMain.Height


Также смотрел исходники TScrollBox но не понял толком ничего
...
Рейтинг: 0 / 0
Как сделать Scroll имеющий ползунок размера пропорционального количеству видимых данных
    #39924140
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может, так:
nMin := 0;
nMax := SGMain.RowCount;
nPage := SGMain.VisibleRowCount;
?
...
Рейтинг: 0 / 0
Как сделать Scroll имеющий ползунок размера пропорционального количеству видимых данных
    #39924690
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леон4ik
Подскажите как сделать чтобы размер ползунка Скролла в гриде был пропорционален количеству скрытых данных
Если мы говорим о TDBBGrid то он именно так и работает. Весь фокус в том, что грид не знает сколько данных в датасете, в него загружаются только отфетченные записи. А датасет, в общем случае, не знает сколько записей вернул сервер.

Проблему может решить такой код
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure TForm1.DataSet1AfterOpen(ADataSet: TDataSet);
begin
  ADataSet.DisableControls;
  try
    ADataSet.Last;
    ADataSet.First;
  finally
    ADataSet.EnableControls;
  end;
end;

но быстродействия такой код не прибавит. И даже наоборот.
...
Рейтинг: 0 / 0
Как сделать Scroll имеющий ползунок размера пропорционального количеству видимых данных
    #39927035
Леон4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_, используется StringGrid, но проблема уже решена
...
Рейтинг: 0 / 0
Как сделать Scroll имеющий ползунок размера пропорционального количеству видимых данных
    #39927526
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леон4ik
но проблема уже решена
Главное никому не говорите как
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сделать Scroll имеющий ползунок размера пропорционального количеству видимых данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]