Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Есть Грид, как мне зделать автоширину Колонок! [D7, Paradox]


}{eRsOn ©   (2005-07-23 18:26:00) 

Парни Салам!

Есть Грид, как мне зделать автоширину Колонок!


}{eRsOn   (2005-07-26 20:49:00) [1]

_dimka ©   (25.07.05 16:33) [14]

Буду краток! _dimka ты лучший!!! :)

Всем огромное спасибо! ГуТ! ;)))


alex_***   (2005-07-25 17:29:00) [2]

я делал так:
можно все колонки "тянуть" одинаково - тогда ширина колонок ClientWIdth грида/кол-во колонок.
А можно тянуть одну колонку - тогда ширина этой колонки = ClientWidth - (ширина всех колонок, кроме выбранной)
все это вешается на resize


_dimka   (2005-07-25 16:33:00) [3]

http://ehlib.com/RUS/ehlibrus.exe
Пароль ФЕВРАЛЬФЕВРАЛЬ


_dimka   (2005-07-25 16:31:00) [4]

http://ehlib.com/RUS/ehlibrus.exe
Пароль ФЕВРАЛЬФЕВРАЛЬ


}{eRsOn   (2005-07-24 18:38:00) [5]

_dimka ©   (24.07.05 16:33) [11]

А по конкретнее, где взять!

Буду примного благодарен. 8-(


_dimka   (2005-07-24 16:33:00) [6]


> }{eRsOn

В EhLib есть грид с автошириной колонок.


}{eRsOn   (2005-07-24 13:25:00) [7]

}{eRsOn   (24.07.05 12:59) [7]

Да я хотел сделать так:

1) Пользователь ввёл запрос
2) Поиск и отображение данных
3) Есть некий чек бокс, в нём ставлю галку
  и поля автомотически выравниваются в гриде по ширине формы
  (размер формы меняется)


msguns   (2005-07-24 13:21:00) [8]

Пардон, не Rows, а RowCount ;))


msguns   (2005-07-24 13:11:00) [9]

>}{eRsOn   (24.07.05 12:59) [7]
>Буду примного благодарен, если обьсните оба способа!!!

Оба способа одинаковы и заключаются в том, чтобы, перебрав значения поля отображаемых записей, "примерить" их на предмет вычисления ширины визуализированного текста. Для этого необходимо преобразовать класс TDBGrid к предку, у которого есть св-во Canvas, выполнить метод TCanvas.TextWidth, куда в качестве прараметра подставить значение поля очередной записи как строку и полученное значение сравнивать с имеющимся в переменной.
Разница только в том, что для всего НД надо просмотреть его весь, а для отображаемого - только те строки, которые в данный момент отображаются.
Недостатки:
1. Для всех. Надо сканировать весь датасет, что может занять существенное время: приложение будет "зависать" при переоткрытии датасета.
2. Для отображаемых. Морока с определением отображаемых записей, для чего опять-таки надо доп.класс-предок грида, в котором открыты св-ва Row, Rows и TopRow. "Тормозить" будет меньше, однако постоянное изменение ширины колонок грида при скроллинге вряд ли понравится марьиванне.

Обычно эта проблема решаетсЯ чисто клиентскими методами: марьиванна сама выставит ширины колонок, а приложение лишь сохранит текущие (например, в файле на диске или даже ini-файле) с восстановлением их при следующей загрузке приложения.


}{eRsOn   (2005-07-24 12:59:00) [10]

msguns ©   (24.07.05 12:52) [6]
>>>максимально "широкого" значения из всех отбираемых для просмотра записей

Буду примного благодарен, если обьсните оба способа!!!

С огромным уважением }{eRsOn. ;-)


msguns   (2005-07-24 12:52:00) [11]

Для начала неплохо бы уточнить, что понимается под понятием "автоширины". Если то, что размер колонки надо определять из максимально "широкого" значения из всех отбираемых для просмотра записей, то это одно, если только из видимых в гриде - это другой.


}{eRsOn   (2005-07-24 12:40:00) [12]

Что никто не сталкивался, или жалко помочь!


}{eRsOn   (2005-07-24 06:13:00) [13]

Virgo_Style ©   (23.07.05 22:33) [2]

Никак нет! Это Приветствие! 87)

X_z_y   (23.07.05 22:56) [3]

А с маленьким примером мона! ;-)


X_z_y   (2005-07-23 22:56:00) [14]

берёшь ширину грида (или высоту) делишь на кол-во колонок...


Virgo_Style   (2005-07-23 22:33:00) [15]

}{eRsOn   (23.07.05 21:56) [1]

Это угроза? :o)


}{eRsOn   (2005-07-23 21:56:00) [16]

Ребяты! Давайте жить дружно!


Наверх

Титульная страница Поиск, карта сайта Написать письмо