![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в 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);