Главная страница
    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.049 c
2-1211624234
Magnit
2008-05-24 14:17
2008.06.22
Реализация задержки по выбору промежутка времени


8-1182364153
Жидкое стекло
2007-06-20 22:29
2008.06.22
Звук и буферы


2-1211854505
AlekseyB
2008-05-27 06:15
2008.06.22
DBGRID


11-1190552406
Thaddy
2007-09-23 17:00
2008.06.22
Strip reloc request


11-1190286937
Robt
2007-09-20 15:15
2008.06.22
PBitmap





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский