![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
при заполнении DBGrid ширина (сумма) всех колонок = ширине формы
Ral'f © (2007-06-18 16:52:00)Как сделать, чтобы при заполнении DBGrid, ширина всех колонок автоматически подбиралась под ширину формы? Ширину всех колонок можно принять - одинаковой.
(Query1.Close;)
Query1.SQL.Clear;
Query1.SQL.Add('');
Query1.Open;
Query1.FieldByName('Name').DisplayLabel:='Наименование';
Query1.FieldByName('NeName').DisplayLabel:='Прочее';
{RASkov} (2007-06-21 18:47:00) [1]
type TGr = class (TCustomGrid);
procedure TForm1.Button1Click(Sender: TObject);
var N, W, W0: Integer;
begin
W0:=TGr(DBGrid1).ColWidths[0];
W:=(DBGrid1.ClientWidth-W0-TGr(DBGrid1).GridLineWidth*(DBGrid1.Columns.Count-1)) div (DBGrid1.Columns.Count);
for N := 0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns[N].Width:=W;
end;
Может быть (скорее всего:)) я не правильно расчитал W, ну а смысл вроде отвечает на вопрос....
zorik (2007-06-21 18:09:00) [2]
DBGrid1.Columns.Count
Ral'f (2007-06-21 17:38:00) [3]> Это значит что колонки создаются после открытия запроса. На соответствующие события и вешай пересчет ширины ячеек.
таких запросов несколько, неужели к каждому запросу приписывать?
...
Query1.Close;
и как бы цикл for тут по колонкам поместить?
DBGrid1.Columns.Items[i].Width =100;
novill (2007-06-20 11:00:00) [4]> [5] Ral'f (20.06.07 09:55)
>
> Настроек DBGrid я не меняю, поэтому, соответственно число
> Column = 0. А заполняется DBGrid благодаря запросу
Это значит что колонки создаются после открытия запроса. На соответствующие события и вешай пересчет ширины ячеек.
Ral'f (2007-06-20 09:55:00) [5]В моей программе BorderStyle = bsSingle, поэтому:
> грид нулевой ширины на форме в 2 пиксела шириной
не увидишь!
> свойства Width у класса TColumn
Настроек DBGrid я не меняю, поэтому, соответственно число Column = 0. А заполняется DBGrid благодаря запросу (см. [0])
Так как бы это всё автоматизировать? я имею ввиду автоподбор ширины колонок.
Или, хотя бы, как, при этом самом заполнении с помощью Query, конкретно указать ширину?
Плохиш (2007-06-18 17:02:00) [6]
> Ral'f (18.06.07 16:52)
Слабо, в справке посмотреть описание свойства Width у класса TColumn?
Sergey13 (2007-06-18 16:59:00) [7]> [0] Ral'f (18.06.07 16:52)
Это не очень хорошая затея, ИМХО, если не хочешь от пользвателя пинки получать.
Правильный Вася (2007-06-18 16:58:00) [8]забавно будет посмотреть на грид нулевой ширины на форме в 2 пиксела шириной
zorik (2007-06-18 16:56:00) [9]В компоненте TDBGridEh библиотеки EhLib есть свойство AutoFitColWidths