![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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) наверное надо расчеты ширин всех колонок опять делать, да?
|