Главная страница
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.47 MB
Время: 0.023 c
15-1210756224
User1
2008-05-14 13:10
2008.06.22
Как программно выключить сервер ?


15-1210707132
Маэстро
2008-05-13 23:32
2008.06.22
Как я сэкономил 1,5к:)


2-1211887395
MVN
2008-05-27 15:23
2008.06.22
Dialog


11-1190199994
Magic07
2007-09-19 15:06
2008.06.22
Есть ли Controls, ControlCount в КОL ??


3-1200384713
developer
2008-01-15 11:11
2008.06.22
collations в MS SQL 2005