Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 29 мар 2024, 11:20

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 14 дек 2017, 07:22 
Не в сети

Зарегистрирован: 04 апр 2014, 11:51
Сообщений: 31
ADOConnection - ADOConnectionProviderEh - ADODataDriverEh - MemTableEh - DataSource - DBGridEh.
Пытаюсь рассчитать ширину колонок по условию:
Если общая ширина колонок меньше DBGrid.Width, то DBGridEh.AutoFitColWidths, иначе DBGridEh.AutoFitColWidths:=false
...
DBGridEh.AutoFitColWidths:=false;//При такой последовательности свойство не меняется
MemTableEh.Active:=false;
ADOConnection.Connected:=false;
DBGridEh.AutoFitColWidths:=false;//При такой последовательности свойство меняется
...
for i:=0 to 5 do
begin
DBGridEh.Columns[i].OptimizeWidth;
ColWidth:=ColWidth + DBGridEh.Columns[i].Width;
end;
if ColWidth < DBGridEh.Width then
DBGridEh.AutoFitColWidths:=true;

При первой последовательности код по времени выполняется дольше (бесполезный пересчет ширины колонок).
Может быть есть стандартные методы DBGridEh для решения данной задачи?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 дек 2017, 09:02 
Не в сети

Зарегистрирован: 04 апр 2014, 11:51
Сообщений: 31
Была ошибка в коде!
Вопрос в части "Не меняется свойство DBGrid.AutoFitColWidths" закрыт!
Чтобы не изобретать велосипед, может быть есть стандартные методы DBGridEh для решения данной задачи?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 28 янв 2021, 09:03 
Не в сети

Зарегистрирован: 12 июл 2012, 05:30
Сообщений: 56
zgs писал(а):
Чтобы не изобретать велосипед, может быть есть стандартные методы DBGridEh для решения данной задачи?

Присоединяюсь к вопросу. Если ответ отрицательный, хотелось бы иметь подобную возможность. Т.е. хотелось бы иметь опцию или совокупность опций, которая позволяла бы добиться следующего поведения грида по умолчанию (когда колонки создаются динамически).

1. Столбцы должны иметь ширину, достаточную для отображения содержимого, либо ограниченную максимальным значением. Например, для единообразия в OptionsEh добавить опцию dghOptimizeColWidths, а в ColumnDefValues добавить параметр MaxWidthMinWidth для симметрии).

2. Опционально (например, при включенной опции AutoFitColWidths): если при выполнении п.1 суммарная ширина всех колонок меньше ширины грида, их ширина должна адаптироваться под ширину грида.

P.S. Можно ли сделать так, чтобы автоматически подгонялась высота только заголовков, когда TitleParams.RowLines = 0? Т.е., например, добавить в TitleParams параметр WordWrap.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB