Главная страница
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.017 c
3-1200304803
linox
2008-01-14 13:00
2008.06.22
как разделить DBLookupcombobox на 2-е части?


2-1212044582
IntruderLab
2008-05-29 11:03
2008.06.22
Дочерние окна


15-1210264310
DillerXX
2008-05-08 20:31
2008.06.22
Можно ли вставить в фотоаппарат


15-1210231595
@!!ex
2008-05-08 11:26
2008.06.22
Использование Delphi Dll на MSVC++


2-1211782721
Xmen
2008-05-26 10:18
2008.06.22
Как можно передать данные из текушего приложения другую и нажать