Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в OwnerDraw режиме ListView задать высоту строк? [D7, Win95/98, WinXP]


MegaVolt ©   (2007-01-18 12:42:00) 

Например у меня шрифт большой нужно сделать строчки повыше как это указать?

Как указать настоящий размер строки в ячейке чтобы корректно работал двойной клик на заголовке колонке который делает ширину колонки равной максимальной ширине элемента?


MegaVolt   (2007-01-24 16:15:00) [1]

Ес.... Я гений  Нашел  Уря-я-я-я.
Короче эта проблема является багом мелкософта упоминание об этом есть тут:
http://forums.microsoft.com/MSDN/ShowPost....20&SiteID=1

Но я хитрее и нашел решение

Вот код:


procedure TForm1.Button1Click(Sender: TObject);
var
 hHeader:THandle;
begin
 if FontDialog1.Execute
   then
     begin
       // Добываем хендл заголовка.
       hHeader := SendMessage(ListView1.Handle, LVM_GETHEADER, 0, 0);
       // !!! Отключаем стль для него
       SetWindowTheme(hHeader,'','');
       // Меняем шрифт
       ListView1.Font:=FontDialog1.Font;
       // Восстанавливаем тему :) Но при этом размер остаётся прежним!!!
       SetWindowTheme(hHeader, nil, nil);
     end;
end;


Пользуйтесь господа если кому надо


MegaVolt   (2007-01-19 19:10:00) [2]

Есть версия что это баг конкретной виндяшной схемы. Кто может проверить изменение размера заголовка ListView при установке больших шрифтов (размер 36 и больше) на темах отличных от стандартной WinXP?


MegaVolt   (2007-01-19 15:58:00) [3]

Нифига эта строчка не делает :( Как оказалось это же сообщение посылается и без моей помощи.

В XP при изменении шрифта размер заголовка не изменяется :( А в 98 всё пашет на ура. Что за глюки?


MegaVolt   (2007-01-19 15:30:00) [4]

Если после изменения шрифта добавить следующую строчку то заголовок ListView становится правильной ширины. Как бы это поправить ещё размеры и самих строчек?

SendMessage(ListView1.Handle,WM_SETFONT,ListView1.Font.Handle,0);


Наверх

Титульная страница Поиск, карта сайта Написать письмо