|
<< Нажмите, чтобы показать Содержание >> Изменение размера таблицы |
В таблицах ширина столбцов и высота строк не задаются явно.
Ширина вычисляется на основе:
▪наименьшей ширины, необходимой для показа содержимого ячеек (если опция rvtoIgnoreContentWidth не включена table.Options)
▪BestWidth таблицы
▪BestWidth ячеек
Высота вычисляется на основе:
▪высоты содержимого ячеек (если опция rvtoIgnoreContentHeight не включена в table.Options и cell.IgnoreContentHeight = False)
▪BestHeight ячеек
Правила вычисления ширины таблицы:
1.ширина ячейки всегда будет достаточно большая, чтобы показать самый широкий элемент внутри неё (если rvtoIgnoreContentWidth не в table.Options);
2.если table.BestWidth<>0, это свойство задаёт ширину таблицы (но таблица может быть шире из-за правила 1)
3.если table.BestWidth=0 то
▪если все столбцы имеют ячейки с BestWidth, измеряемыми в TRVStyleUnits, то есть в пикселях, твипах или EMU (и не имеют ячеек с BestWidths в %), ширина таблицы вычисляется на основе BestWidth ячеек и минимальной ширины для показа их содержимого (в таком режиме изменение размера мышью работает почти так же, как в MS Word)
▪в противном случае, ширина таблицы будет такая же, как при BestWidth=-100 (100%) (пока TRichView не умеет рассчитывать ширину таблицы на основе оптимальной ширины для показа содержимого ячеек)
Правила для расчета ширины столбцов довольно сложны.
Наиболее важные правила (в случае, когда ширины различных ячеек конфликтуют):
▪ширина ячеек слева обычно имеет более высокий приоритет, чем справа;
▪ширина ячеек в % имеет более высокий приоритет, чем ширина в пикселях/твипах/EMU.
Изменение размера с помощью мыши возможно только в редакторе.
Если удалить rvtoRowSizing и rvtoColSizing из table.Options, пользователи не смогут изменять размер таблицы.
При изменении размера таблицы с помощью мыши пользователь фактически изменяет значения свойств BestWidth или BestHeight ячеек.
При изменении размера столбцов с помощью мыши, если в столбцах слева и справа нет ячеек с BestWidth в процентах, RichViewEdit корректирует BestWidth ячеек столбцов справа и слева, стараясь сохранить их общую ширину неизменной.
При изменении размера с помощью клавиши Shift компонент устанавливает BestWidth только для столбца слева.