Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.22;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
15-1210142041
Kolan
2008-05-07 10:34
2008.06.22
У кого есть FastReport 4, можете посмотреть есть ли там свойство


6-1189211020
ArtemVac
2007-09-08 04:23
2008.06.22
Доска для рисования по локальной сети


4-1191156354
Dib@zol
2007-09-30 16:45
2008.06.22
Перерисовка PopupMenu


15-1210267804
AlexDan
2008-05-08 21:30
2008.06.22
Тоже о фотоаппарате...


3-1200551154
saNat
2008-01-17 09:25
2008.06.22
Ошибка в запросе с парметром: DBQuery: Field Table_a2 not found