![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как запретить изменение ширины колонок в ListView?
Германн © (2011-04-05 16:07:00)Поисковики дают решение и подменой WindowProc для ListView. Оно рабочее, но некрасивое. Ширину действительно изменить нельзя, но курсор изменения ширины всё-таки показывается. Может кто-нибудь знает другой способ?
Д2007
Германн (2011-04-08 17:55:00) [1]
> Rouse_ © (08.04.11 17:49) [15]
Спасибо, но во-первых я по желанию заказчика использую шкуры, а во-вторых мне таки удалось заказчиков убедить, что запрещать пользователю изменять ширину колонок не есть гуд.
:)
Rouse_ (2011-04-08 17:49:00) [2]Попробуй с вот этим поэксперементировать: http://rouse.drkb.ru/components.php#gslistview
Там есть свойство CustomCoumnTrack, я его правда почемуто в published забыл вынести, не помню почему. Его выставь в True и в обработчике OnTrack указывай фиксированную ширину. Ну например вот так:
procedure TForm1.FormCreate(Sender: TObject);
begin
GSListView1.CustomCoumnTrack := True;
end;
procedure TForm1.GSListView1Track(Sender: TObject; var AWidth: Integer);
begin
case GSListView1.TrackedColumn of
0: AWidth := 100;
1: AWidth := 200;
end;
end;
Германн (2011-04-06 02:16:00) [3]
> Германн © (06.04.11 02:13) [13]
>
>
> > DiamondShark © (06.04.11 02:10) [11]
>
> Хм. А вот это идея. И как я сам не додумался?
>
Хм. Не подходит. Заказчик сразу завопит, что такой ListView никуда не годится.
Германн (2011-04-06 02:13:00) [4]
> DiamondShark © (06.04.11 02:10) [11]
Хм. А вот это идея. И как я сам не додумался?
Германн (2011-04-06 02:11:00) [5]
> Юрий (05.04.11 20:53) [8]
>
>
> > "Заказчику" не нравится такой вариант. (((
>
>
> Судя по всему, Германн пишет для ослопитомник
Хошь верь, хошь не верь. Но пока под термином "заказчик" подразумеваются только только те люди, которые работают в техотделе той фирмы, на которую я сейчас в основном работаю. (По крайней мере я в этой фирме получаю ежемесячную плату без непосредственной связи с результатами моей работы :)
Все эти люди мне давно знакомы. Но их испортили "программеры", которые работали в моей прежней фирме. То же относится и к некоторым менеджерам.
DiamondShark (2011-04-06 02:10:00) [6]
> Заказчик пока не понимает, что "удобная" ширина колонок
> зависит не только от количества букв.
Поставить тему экрана с крупным шрифтом и заставить работать неделю.
Германн (2011-04-06 02:01:00) [7]
> clickmaker © (05.04.11 17:39) [6]
>
> > курсор изменения ширины всё-таки показывается
>
> ну, WM_SETCURSOR можно еще перехватывать
>
Возможно придется именно так и делать, если не удастся переубедить заказчика, что возможность пользователю самому менять ширину колонок есть благо для пользователя, а не вред. Заказчик пока не понимает, что "удобная" ширина колонок зависит не только от количества букв.
Rouse_ (2011-04-05 22:09:00) [8]
> _Юрий (05.04.11 20:53) [8]
> Сделайте скрин-шот хедера, и подложите картинку :-)
Шикарный вариант :)))
_Юрий (2011-04-05 20:53:00) [9]
> "Заказчику" не нравится такой вариант. (((
Судя по всему, Германн пишет для ослопитомник - то им курсор не нравится, то фокус.
Сделайте скрин-шот хедера, и подложите картинку :-)
ListView (2011-04-05 18:55:00) [10]ListView.Enabled:= False
?
clickmaker (2011-04-05 17:39:00) [11]> курсор изменения ширины всё-таки показывается
ну, WM_SETCURSOR можно еще перехватывать
QAZ (2011-04-05 17:30:00) [12]попробуй выцепить хидер из листа LVM_GETHEADER
потом добавь хидеру стиль HDS_NOSIZING (работает Vista и выше)
или борись с курсором
Германн (2011-04-05 16:50:00) [13]
> Eraser © (05.04.11 16:43) [3]
"Заказчику" не нравится такой вариант. (((
Eraser (2011-04-05 16:43:00) [14]Можно выставить в Columns MaxWidth MinWidth - курсор будет меняться, эффект изменения ширины тоже будет видно, но после отпускания левой кнопки мыши - ширина вернется на место.
Германн (2011-04-05 16:40:00) [15]
> вернуть true в обработчике HDN_BEGINTRACK не помогает?
Нет.
clickmaker (2011-04-05 16:19:00) [16]> подменой WindowProc для ListView
в вернуть true в обработчике HDN_BEGINTRACK не помогает?