Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2017.01.22;
Скачать: [xml.tar.bz2];

Вниз

Проблема с DBGrid   Найти похожие ветки 

 
Gedimen ©   (2015-05-23 21:08) [0]

Доброго времени суток, форумчане! Помогите, пожалуйста!

(использую Delphi XE8, firebird 2.5)

Возникла проблема с DBGrid, всю голову сломал, как решить не знаю.

Суть в следующем:
На форме лежит DBGrid1, привязанный к краям формы (тянется).
Через FireDAC получаю данные.
При создании формы увеличиваю высоту строк (TStringGrid(DBGrid1).DefaultRowHeight := 26;)

Запускаю приложение, кручу колесом мыши вниз - все нормально: указатель текущей строки доходит до последней отображаемой строки (самый низ грида), выводятся следующие записи, указатель внизу, виден.
Но! Стоит только развернуть форму во весь экран, то при прокрутке грида указатель уходит куда-то "вниз" (становится не виден), если докрутить до последней записи, то она не видна (она где-то "внизу", в невидимой области). Не видно N-ное количество записей. Пока полосой прокрутки не дернешь, последих записей не увидишь.

Если убрать строчку TStringGrid(DBGrid1).DefaultRowHeight := 26, то все нормально. Пробовал сразу фетчить - не помогает.
Короче, грид как-то не правильно считает выводимые строки, а как поправить - не знаю.


 
sniknik ©   (2015-05-24 00:51) [1]

> TStringGrid(DBGrid1).DefaultRowHeight := 26
метод "хакерский", не предусмотрен у DBгрида, перерасчетов наверняка не делает при изменении размеров формы...

попробуй "передернуть" высоту, в смысле сменить DefaultRowHeight на дефаулт, а после опять на 26, в установке проперти у стринг грида должно размеры учитывать (раз это его стандартный метод).
для начала можно по кнопке, и если кнопка будет восстанавливать работу, после разворота формы/других событий, то смотреть что нужно сделать в методе у проперти. т.е. самому делать перерасчет. ну или тупо менять высоту строк.


 
Gedimen ©   (2015-05-24 09:45) [2]

sniknik,
Пробовал "передернуть" DefaultRowHeight - не помогает. Однако если после разворота формы на весь экран кликнуть на ползунок полосы прокрутки, то становится все нормально.
Думаю, может программно кликнуть по ползунку. Только как?


 
junglecat ©   (2015-05-24 12:22) [3]

> может программно кликнуть по ползунку

а если вызвать TCustomGrid.AdjustSize?


 
Gedimen ©   (2015-05-24 14:29) [4]

junglecat,

Спасибо за наводку. Решил по другому:

type
 TCGrid = class(TCustomGrid);

TCGrid(DBGrid1).RowCount:=TCGrid(DBGrid1).VisibleRowCount+1;


 
Германн ©   (2015-05-25 02:04) [5]


> Gedimen ©   (24.05.15 14:29) [4]
>
> junglecat,
>
> Спасибо за наводку. Решил по другому:
>

Неужто работает сей монстр?


 
Gedimen ©   (2015-05-26 12:33) [6]


>Германн ©   (25.05.15 02:04) [5]

> Неужто работает сей монстр?


Работает.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2017.01.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.014 c
8-1240496878
Gear
2009-04-23 18:27
2017.01.22
DirectSound, AEC и буфер захвата


2-1432298850
guest
2015-05-22 15:47
2017.01.22
можно ли унаследовать класс без исходников?


2-1432404520
Gedimen
2015-05-23 21:08
2017.01.22
Проблема с DBGrid


2-1432545017
Пауло Сержио
2015-05-25 12:10
2017.01.22
Не работает Locate если есть пустые значения


2-1432664117
Signal
2015-05-26 21:15
2017.01.22
Помогите с компонентом sslHttpCli из ICS





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский