Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
2-1212043089
TUserClass
2008-05-29 10:38
2008.06.22
ЗаDisabl ить все формы кроме одной


2-1211867426
ab1e
2008-05-27 09:50
2008.06.22
зарегистрироваться как почтовая программа и получить адрес


2-1211411529
Timer
2008-05-22 03:12
2008.06.22
Как обновить TListView в режиме vsIcon?


2-1211782997
Сергей
2008-05-26 10:23
2008.06.22
совместный доступ к таблице Patadox-7


15-1210432071
@!!ex
2008-05-10 19:07
2008.06.22
Альтернативный Windows Manager для KDE.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский