Текущий архив: 2005.09.04;
Скачать: CL | DM;
Вниз
Есть Грид, как мне зделать автоширину Колонок! Найти похожие ветки
← →
}{eRsOn (2005-07-23 18:26) [0]Парни Салам!
Есть Грид, как мне зделать автоширину Колонок!
← →
}{eRsOn (2005-07-23 21:56) [1]Ребяты! Давайте жить дружно!
← →
Virgo_Style © (2005-07-23 22:33) [2]}{eRsOn (23.07.05 21:56) [1]
Это угроза? :o)
← →
X_z_y (2005-07-23 22:56) [3]берёшь ширину грида (или высоту) делишь на кол-во колонок...
← →
}{eRsOn (2005-07-24 06:13) [4]Virgo_Style © (23.07.05 22:33) [2]
Никак нет! Это Приветствие! 87)
X_z_y (23.07.05 22:56) [3]
А с маленьким примером мона! ;-)
← →
}{eRsOn (2005-07-24 12:40) [5]Что никто не сталкивался, или жалко помочь!
← →
msguns © (2005-07-24 12:52) [6]Для начала неплохо бы уточнить, что понимается под понятием "автоширины". Если то, что размер колонки надо определять из максимально "широкого" значения из всех отбираемых для просмотра записей, то это одно, если только из видимых в гриде - это другой.
← →
}{eRsOn (2005-07-24 12:59) [7]msguns © (24.07.05 12:52) [6]
>>>максимально "широкого" значения из всех отбираемых для просмотра записей
Буду примного благодарен, если обьсните оба способа!!!
С огромным уважением }{eRsOn. ;-)
← →
msguns © (2005-07-24 13:11) [8]>}{eRsOn (24.07.05 12:59) [7]
>Буду примного благодарен, если обьсните оба способа!!!
Оба способа одинаковы и заключаются в том, чтобы, перебрав значения поля отображаемых записей, "примерить" их на предмет вычисления ширины визуализированного текста. Для этого необходимо преобразовать класс TDBGrid к предку, у которого есть св-во Canvas, выполнить метод TCanvas.TextWidth, куда в качестве прараметра подставить значение поля очередной записи как строку и полученное значение сравнивать с имеющимся в переменной.
Разница только в том, что для всего НД надо просмотреть его весь, а для отображаемого - только те строки, которые в данный момент отображаются.
Недостатки:
1. Для всех. Надо сканировать весь датасет, что может занять существенное время: приложение будет "зависать" при переоткрытии датасета.
2. Для отображаемых. Морока с определением отображаемых записей, для чего опять-таки надо доп.класс-предок грида, в котором открыты св-ва Row, Rows и TopRow. "Тормозить" будет меньше, однако постоянное изменение ширины колонок грида при скроллинге вряд ли понравится марьиванне.
Обычно эта проблема решаетсЯ чисто клиентскими методами: марьиванна сама выставит ширины колонок, а приложение лишь сохранит текущие (например, в файле на диске или даже ini-файле) с восстановлением их при следующей загрузке приложения.
← →
msguns © (2005-07-24 13:21) [9]Пардон, не Rows, а RowCount ;))
← →
}{eRsOn (2005-07-24 13:25) [10]}{eRsOn (24.07.05 12:59) [7]
Да я хотел сделать так:
1) Пользователь ввёл запрос
2) Поиск и отображение данных
3) Есть некий чек бокс, в нём ставлю галку
и поля автомотически выравниваются в гриде по ширине формы
(размер формы меняется)
← →
_dimka © (2005-07-24 16:33) [11]
> }{eRsOn
В EhLib есть грид с автошириной колонок.
← →
}{eRsOn (2005-07-24 18:38) [12]_dimka © (24.07.05 16:33) [11]
А по конкретнее, где взять!
Буду примного благодарен. 8-(
← →
_dimka © (2005-07-25 16:31) [13]http://ehlib.com/RUS/ehlibrus.exe
Пароль ФЕВРАЛЬФЕВРАЛЬ
← →
_dimka © (2005-07-25 16:33) [14]http://ehlib.com/RUS/ehlibrus.exe
Пароль ФЕВРАЛЬФЕВРАЛЬ
← →
alex_*** (2005-07-25 17:29) [15]я делал так:
можно все колонки "тянуть" одинаково - тогда ширина колонок ClientWIdth грида/кол-во колонок.
А можно тянуть одну колонку - тогда ширина этой колонки = ClientWidth - (ширина всех колонок, кроме выбранной)
все это вешается на resize
← →
}{eRsOn (2005-07-26 20:49) [16]_dimka © (25.07.05 16:33) [14]
Буду краток! _dimka ты лучший!!! :)
Всем огромное спасибо! ГуТ! ;)))
Страницы: 1 вся ветка
Текущий архив: 2005.09.04;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.065 c