![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGrid
Slimer © (2006-12-21 11:45:00)Как в run-time изменить ширину толбца таблицы DBGrid по длине заголовка столбца, или по максимально длинному значению в какой либо ячейке данного столбца?
Anatoly Podgoretsky (2006-12-21 16:53:00) [21]> Slimer (21.12.2006 16:50:22) [22]
Это уже другой вопрос и другая функция/свойство TextWidth
Смотреть там же, в справке
Anatoly Podgoretsky (2006-12-21 16:52:00) [22]> Slimer (21.12.2006 16:34:20) [20]
Как задашь вопрос, так и получишь ответ, в народной мудрости "каков вопрос, таков и ответ"
Slimer (2006-12-21 16:50:00) [23]
> дбгрид1.цокумнс[c].дисплынаме + ф1
>
> PS. какой догадливый, аднака :-)
В справке такого я не нашел. Как можно определить длину слова в рх чтоб по этому слову выровнять колонку?
Плохиш (2006-12-21 16:37:00) [24]дбгрид1.цокумнс[c].дисплынаме + ф1
PS. какой догадливый, аднака :-)
Slimer (2006-12-21 16:34:00) [25]
> > Slimer (21.12.2006 16:26:18) [18]
>
> длина_заголовка_столбца := DBGrid1.Columns[c].Width
У меня складывается впечатление что вы либо не понимаете мой вопрос либо издеваетесь надо мной! Мне нужно чтоб ширина столбца устанавливалась по тексту заголовка! Т.е. в зависимости от того насколько длинное слово в заголовке столбца.
Anatoly Podgoretsky (2006-12-21 16:29:00) [26]> Slimer (21.12.2006 16:26:18) [18]
длина_заголовка_столбца := DBGrid1.Columns[c].Width
Slimer (2006-12-21 16:26:00) [27]
> > Slimer (21.12.2006 16:15:15) [15]
>
> Например так
>
> DBGrid1.Columns[c].Width := 33;
??? Не думал что вы меня настолько тупым считаете!
Я имею ввиду как можно определить длину строки заголовка столбца? А подставить значение вместо 30 я и сам могу
Плохиш (2006-12-21 16:24:00) [28]
> Slimer © (21.12.06 16:15) [15]
> Теперь растолкуйте мне пожалуйста, как вместо 30, написать
> то что мне нужно?
Делается просто: выходишь во двор, надеваешь халат, берёшь рабочий инструмент и начинаешь, в конце концов, выполнять свои прямые обязанности.
Anatoly Podgoretsky (2006-12-21 16:24:00) [29]> Slimer (21.12.2006 16:15:15) [15]
Например так
DBGrid1.Columns[c].Width := 33;
Slimer (2006-12-21 16:15:00) [30]Таааак:) Отличненько... с одним справились:)
Процедура упростилась до неймоверных размеров:) Ура! Как грицца краткость-сестра таланта:)
procedure TForm1.Button1Click(Sender: TObject);
var c:integer;
begin
for c:=0 to DBGrid1.Columns.Count-1 do
DBGrid1.Columns.Items[c].Width:=30;
end;
Теперь растолкуйте мне пожалуйста, как вместо 30, написать то что мне нужно?
Anatoly Podgoretsky (2006-12-21 16:01:00) [31]> Slimer (21.12.2006 15:44:07) [7]
Зачем ты пытаешься создавать созданое.
Быстро марш в справку по указанным ключевым словам.
Slimer (2006-12-21 16:00:00) [32]
> Не ври, он этого не советовал. И в справке, в которую он
> тебя послал, то же такого не советовали.
Ну может он когда советовал то имел ввиду что-то другое, но я это понял так:) И так оно получилось. но не работает.
Да может хоть кто-то просто привести пример кода и все!!! Я сразу пойму как это должно работать, а не тыкать вечно в эту хренову справку! Если б она еще на русском была, а так я еще не понимаю что там наклацано на забугорском!
Slimer (2006-12-21 15:57:00) [33]
> vitv © (21.12.06 15:48) [8]
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> DBGrid1.DataSource.DataSet.DisableControls;
> TStringGrid(DBGrid1).DefaultRowHeight := 55;
> DBGrid1.DataSource.DataSet.EnableControls;
> end;
Читай внимательно: мне нужно именить не высоту строки а ширину. чтоб она ровнялась длине заголовка столбца или максимальной длинне данных в самой длинной ячейке этого столбца.
Плохиш (2006-12-21 15:55:00) [34]
> Slimer © (21.12.06 15:53) [10]
> Как где? Подгорецкий посоветовал
Не ври, он этого не советовал. И в справке, в которую он тебя послал, то же такого не советовали.
Slimer (2006-12-21 15:53:00) [35]
>
> > t:=TColumn.Create(DBGrid1.Columns);
>
> Это ты где такое вычитал?
Как где? Подгорецкий посоветовал:)
Плохиш (2006-12-21 15:50:00) [36]
> t:=TColumn.Create(DBGrid1.Columns);
Это ты где такое вычитал?
vitv (2006-12-21 15:48:00) [37]procedure TForm1.Button1Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.DisableControls;
TStringGrid(DBGrid1).DefaultRowHeight := 55;
DBGrid1.DataSource.DataSet.EnableControls;
end;
Slimer (2006-12-21 15:44:00) [38]Даже вот так будет правильней:
procedure TForm1.Button1Click(Sender: TObject);
var t: TColumn;
c:integer;
begin
for c:=0 to DBGrid1.Columns.Count-1 do
begin
t:=TColumn.Create(DBGrid1.Columns);
t.Width:=Table1.Fields[c].FieldName.Length;
end;
end;
но всеравно не работает... Надо как-то по другому
Slimer (2006-12-21 15:41:00) [39]Ты думаешь я справку не смотрел? Думаешь я просто сижу и при малейшем вопросе сразу начинаю всех просить помочь??? Я с утра с самого пытаюсь сделать эту хрень а она не работает! Я ж не виноват что у меня еще опыта маловато!
Вот пишу следующее:
procedure TForm1.Button1Click(Sender: TObject);
var t: TColumn;
c:integer;
begin
for c:=0 to DBGrid1.Columns.Count-1 do
begin
t:=TColumn.Create(DBGrid1.Columns);
t.Width:=strtoint (Table1.Fields[c].FieldName.Length);
end;
end;
и естественно ошибка. Как ее исправить?
Anatoly Podgoretsky (2006-12-21 15:30:00) [40]Смотри свойство Items у DBGrid.columns (можно опускать), кроме того у тебя наверно и Дельфи есть, соответственно есть и редактор, так вот там можно написать, только учти что DBGrid.columns это коллекция, то потребуется индекс, вот после него набей точку и нажми Ctrl+Space
или в конце концов взгляни наконец в справку.