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

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

DBGrid


Страницы:   1 2 3

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
или в конце концов взгляни наконец в справку.


Страницы:   1 2 3

Наверх

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