Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2014, 13:13   #1
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию ClientDataSet и DBGrid - вместимость

Привет!

Задаю размер вмещающейся инфы в каждой ячейке, вот так:

Код:
ClientDataSet1.FieldDefs.Clear;
ClientDataSet1.FieldDefs.Add('Name1', ftString, 2000, False);
ClientDataSet1.FieldDefs.Add('Name2', ftString, 2000, False);
ClientDataSet1.CreateDataSet();  //создается и активищируется пустой набор данных
После этого ячейки в DBGrid становятся большими. Уменьшаю их так:

Код:
for i := 0 to DBGrid1.Columns.Count - 1
      do DBGrid1.Columns.Items[i].Width := 200;
То есть обходу каждую колонку и задаю ей размер. А если таких колонок миллионы? Есть ли способ сделать это все более правильным путем? Или придется каждый раз их уменьшать?

Последний раз редактировалось bilibian; 24.08.2014 в 14:01.
bilibian вне форума Ответить с цитированием
Старый 24.08.2014, 14:11   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
А если таких колонок миллионы?
Миллионам и задавать теми же двумя строками кода. Только навряд ли миллионы потянет комп. А еще есть способ задавать колонки, их размеры и наименования не динамически, а мышкой на этапе проектирования формы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.08.2014, 15:48   #3
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А еще есть способ задавать колонки, их размеры и наименования не динамически, а мышкой на этапе проектирования формы
Если речь идет о ClientDataSet, то ширину самих колонок там задать не получится, так как если поставить size 20, то и текста в колонках будет на 20 и не больше.

Последний раз редактировалось bilibian; 24.08.2014 в 15:51.
bilibian вне форума Ответить с цитированием
Старый 24.08.2014, 15:58   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Если речь идет о ClientDataSet
Не важно, для любого датасета быстрого и умного способа нет. Есть корявый и не быстрый - получить данные, просканировать все и вычислить максимальную ширину для отображения поля. А есть еще возможность для пользователя самому менять ширину колонки. Эту ширину можно запомнить например в ini-файле или в чем хочешь при выходе из проги и при следующем входе установитиь её
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 24.08.2014 в 16:01.
Аватар вне форума Ответить с цитированием
Старый 24.08.2014, 16:07   #5
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Эту ширину можно запомнить например в ini-файле или в чем хочешь при выходе из проги и при следующем входе установитиь её
В принципе тож как вариант.

Спасибо за помощь!
bilibian вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ClientDataSet Janger Общие вопросы Delphi 1 24.07.2014 05:28
данные из dbgrid в quickreport соединение через clientdataset Leila_4ever Общие вопросы Delphi 0 11.06.2011 19:51
clientdataset iliili БД в Delphi 1 21.03.2011 18:57
Clientdataset. D.O.G БД в Delphi 5 05.10.2010 13:40
clientdataset slimvv Помощь студентам 1 24.08.2009 17:21