![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Grid22.bmp
Думается, по картинке понятна проблема. Кого не затруднит, помогите пожалуйста. |
#2
|
||||
|
||||
![]() Цитата:
Код:
DbGrid.Columns[1].Width := DbGrid.Width - DbGrid.Columns[0].Width А в идеале, надо в цикле полистать весь список тестов, найти самое длинное название и выставить первой колонка ее ширину. Если че это Canvas.TextWidth(TString). А потом выставить остаток второй колонке. Если колонок много, то нужно составлять пропорциональное соответствие. Последний раз редактировалось Uniq!, 29.07.2014 в 23:41. |
#3
|
|||
|
|||
![]() Примерный способ, теребует подгонки, и универсализации ( если полей больше 2 то надо циклом высчитать ширину колонок кроме требуемой), например в независимости от установленности опции Indicator'a). Продумать что использовать - DataSet.Fields[х].DisplayWidth или dbGrid.Columns[х].Width
Код:
procedure TForm1.FormResize(Sender: TObject); begin DataSet.Fields[1].DisplayWidth := DBGrid1.ClientWidth - DataSet.Fields[0].DisplayWidth - 12{Indicator width}; end; |
#4
|
|||
|
|||
![]() А если ширину самих колонок изменять. Тут в перерисовке (ondragcolumncell) наверное надо расчеты ширин всех колонок опять делать, да?
|