Форум: "Основная";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
ВнизКак преобразовать TField.DisplayWidth в ListView.Column[x].Width? Найти похожие ветки
← →
Rav (2007-12-07 12:16) [0]Подскажите, как пересчитать ширину поля набора данных в физицеску ширину столбца в пикселях, к примеру для TListView: TField.DisplayWidth -> ListView.Column[x].Width?
Есть ли какая формула, дабы потом не было косяков с размерами символов и т.д. Ведь TDbGrid как-то пересчитывает, но как? - я не уловил принципа.
← →
{RASkov} © (2007-12-07 13:38) [1]> [0] Rav (07.12.07 12:16)
Читал-читал.... читал-читал.... не понял суть :(
либо:=
либоCanvas.TextWidth
?
← →
Rav (2007-12-07 14:10) [2]Нет, совсем не то.
Нужно создать в ListView несколько столбой таблицы (выборочно)
При этом нужно расчитать ширину столбца в пикселях, оновываясь на ширине поля в символах.
if Assigned(ListField) then
begin
with ListView.Columns.Add do
begin
Data := ListField;
Caption := ListField.DisplayName;
Width := ListField.DisplayWidth ???????????????;
end;
end;
← →
{RASkov} © (2007-12-07 14:23) [3]> [2] Rav (07.12.07 14:10)
Тебе столбец шириной как текст в заголовке колонки, или шириной самой "широкой" ячейки?
В прочем и там и там [1] т.е.Canvas.TextWidth
Width := ListView.Canvas.TextWidth(ListField.DisplayName);
Вот что-то так....
...но это ширина "по заголовку", а как по самой широкой ячейке, сам подумай..... т.е. тут и думать-то уже не нужно...
← →
atruhin © (2007-12-07 16:52) [4]> TField.DisplayWidth -> ListView.Column[x].Width
Обычно в компонентих используется Canvas.TextWidth("a");
Т.е. символ средней ширины.
← →
Правильный_Вася (2007-12-07 18:25) [5]интересно поглядеть на лисвиев, у которого ширина колонок по 10000 знаков
← →
Rav (2007-12-07 18:38) [6]
> Width := ListView.Canvas.TextWidth(ListField.DisplayName);
Спасибо, вот именно то что нужно... дальше я уже сам :-)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.094 c