Форум: "Основная";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];
ВнизГлюк свойства AutoSize у TListColumn в TListView Найти похожие ветки
← →
Anatol_sp (2005-07-26 22:01) [0]На форме есть TListView (ListView1) с ViewStyle=vsReport и одной колонкой с AutoSize=True. Так вот, иногда, при добавлении большого количества элементов (TListItem), этот AutoSize срабатывает некорректно и появляется полоса горизонтальной прокрутки. Т.е. колонка расширяется до несколько большей ширины, чем надо. После долгих мучений выяснил, что, чтобы этот AutoSize все-таки установил нормальную ширину для колонки, можно изменить ширину ListView на один пункт, а потом обратно. Но это бредовый способ. Пытался и Refresh, и Update, и Repaint - ничего не помогает. Вопрос: лечится ли это?
Для упрощения понимания вопроса набросал маленький кодик, добавляющий в ListView 3000 произвольных элементов.
var
N:TListItem;
I,I2:Integer;
Str:String;
Coun:Integer;
const
Bukv="qwertyuiopasdfghjklzxcvbnm";
begin
Randomize;
ListView1.Items.BeginUpdate;
ListView1.Items.Clear;
For I := 0 to 3000 do
begin
Str:="";
Coun:=0;
While Coun<7 do
Coun:=Random(15);
For I2 := 0 to Coun do
Str:=Str+Bukv[Random(26)+1];
N:=ListView1.Items.Add;
N.Caption:=Str;
end;
ListView1.Items.EndUpdate;
end;
← →
Ученик (2005-07-26 23:02) [1]
uses
CommCtrl;
// LVSCW_AUTOSIZE_USEHEADER -2
...
SendMessage(ListView1.Handle, LVM_SETCOLUMNWIDTH, 0, makelparam(Word(-2), 0));
ListView1.Items.EndUpdate;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.01 c