Форум: "Основная";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];
ВнизTListView Найти похожие ветки
← →
MikeLevinN (2007-11-18 12:28) [0]Здравствуйте. У меня есть TListView, ViewStyle = vsIcon, LargeImages = ImageList1; ImageList1.Height = Width = 40;
Как мне изменить расстояние между записами, и как мне изменить расстояние от краев?
Для наглядности покажу картинку, левый ListView — текущая ситуация; правый — то, как мне нужно сделать.
http://img218.imageshack.us/img218/2396/lvte4.gif
← →
MikeLevinN (2007-11-18 13:29) [1]Сдвинуть расстояние между "иконками" и уменьшить расстояние от левой границы помоглао — LVM_SETICONSPACING. Оно же: ListView_SetIconSpacing
Но вот что деалть с расстоянием от верхней границы? У меня идеи закончились.
← →
MikeLevinN (2007-11-18 16:12) [2]Радость по поводу LVM_SETICONSPACING закончилась. В тестовом приложении не использовал манифест (XPMan), всё было ок. Добавил манифест, все начало работать не так как нужно. Мало того, что ListView_SetIconSpacing, стало работать не так, так ещё и мой собственный код отрисовки в OnCustomDrawItem отказался нормально функционировать.
Что происходит с TListView с примененим манифеста? Я смотрел код TListView из ComCtrls.pas, так там есть единственное место, которое связано с ThemeServices и избавление от этого места не приносит результата.
Что мне сделать?
Использую Win2003 без тем вообще.
← →
guav © (2007-11-18 16:20) [3]Реализация при использвании тем различается в самой библиотеки Сommon Controls в Windows.
Есть другие проблемы с темами, в частности TabControl с темами не поддерживает все варианты закладок.
> http://img218.imageshack.us/img218/2396/lvte4.gif
Если хочется так точно управлять расположением элементов - рекомендую виртуальный листбокс (TListBox + lbsVitrualOwnerDraw) и рисуй сам всё как хочешь.
← →
MikeLevinN (2007-11-18 16:38) [4]Спасибо, я попробую TListBox, единственное настораживает, что у меня получится сделать нужный функционал. Текущий TListView — не просто список, — это совего рода кнопки, которые реагируют на наведение курсора (первая проблема: отсутствие GetItemAt(x,y) у TListBox).
А возможно ли каким-то образом (я сам не представляю как) отменить у отдельного контролла (ну того же TListView) обработку манифестом, заставить его обрабатываться как без-темный (без XPMan)?
← →
{RASkov} (2007-11-18 16:59) [5]> [4] MikeLevinN (18.11.07 16:38)
> первая проблема: отсутствие GetItemAt(x,y) у TListBox
Может так решить эту "траблу":var N: Integer;
begin
N:=ListBox1.ItemAtPos(Point(X,Y), True);
if N>=0 then Caption:=ListBox1.Items[N] else Caption:="";
end;
> А возможно ли каким-то образом
Вряд ли...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c