Форум: "KOL";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];
ВнизСтиль контрола mdvXLGrid Найти похожие ветки
← →
Rusya (2007-05-30 09:41) [0]Как изменить стиль отображения контрола mdvXLGrid? Хотелось бы, чтобы границы контрола отображались как в ХР-стиле обычного ListView (тонкая синеватая рамка, и стиль bsNone). Можно ли это сделать?
← →
mdw © (2007-05-30 13:22) [1]А ХР-стиль обычного ListView это как? Если подразумеваются схемы то какая из них обычная? А если отрисовка с использованием схем, то реализуйте, в KOL.pas можно посмотреть как это делается, разобраться можно достаточно быстро, там все просто.
← →
Rusya (2007-05-30 14:26) [2]
> А ХР-стиль обычного ListView это как?
В программе используются обычный Listview и mdvXLGrid. Под ХР у listview"a с манифестом отображается бордер тонкой синей рамкой, контрол стилем как бы bsNone (нормальный, не выпуклый и не вогнутый). mdvXLGrid всегда отображается Lowered, и манифест не цепляет. Хочу, чтобы он отображался примено так как listview под ХР отображается :) Чтобы все единым стилем было.
← →
Dimaxx © (2007-05-30 15:09) [3]Listview рисует ОСь, а mdvXLGrid нарисован самостоятельно. Чтобы он понимал темы нуна ручками править отрисовку.
← →
mdw © (2007-05-30 16:11) [4]Ну бордер убрать HasBorder:= False;
А все остальное, берете исходник, находите метод Paint и рисуете с учетом тем. Ничего сложного там нет, просто функции рисования поменять. Потом присылаете, выкладываем на сайте, народ спасибо скажет еще. :)
← →
Danger © (2007-05-30 18:42) [5]
> mdw © (30.05.07 16:11) [4]
> Ну бордер убрать HasBorder:= False;А все остальное, берете
> исходник, находите метод Paint и рисуете с учетом тем. Ничего
> сложного там нет, просто функции рисования поменять. Потом
> присылаете, выкладываем на сайте, народ спасибо скажет еще.
> :)
Ну например, Rusya можешь сделать так: использовать уже готовую отрисовку, сделанную Кладовым для Richedit. Для этого в KOLmdvXLGrid.pas в функцииNewmdvXLGrid
добавить ниже вызоваResult.AttachProc(WndProcmdvXLGrid);
аттач к своей процедуре отрисовки:
....
Result.AttachProc(WndProcmdvXLGrid);
{$IFDEF RICHEDIT_XPBORDER}
Result.AttachProc( WndProc_RichEditXPBorder );
{$ENDIF}
....
Т.к. WndProc_RichEditXPBorder, DrawThemeBackground, PThemedElementDetails, TThemedElementDetails не объявлены в интерфейсной части KOL.pas, копируем их оттуда в KOLmdvXLGrid.pas, несколько выше NewmdvXLGrid:{$IFDEF RICHEDIT_XPBORDER}
type
TThemedElement = (
teButton,
teClock,
........................
ReleaseDC(Self_.Handle, DC);
//end;
end;
end;
end;
{$ENDIF RICHEDIT_XPBORDER}
Я сам так делал, не было времени делать специализированную отрисовку, нужно было сделать по-быстрому. По крайней мере, рамка контрола теперь будет, как вам и нужно, если добавить в опции проекта RICHEDIT_XPBORDER.
To Vladimir Kladov: Может, стоит объявить WndProc_RichEditXPBorder, DrawThemeBackground и по крайней мере типы TThemedElement/РThemedElement, TThemedEdit в интерфейсной части KOL.pas? Кода это не добавит, но позволяет по быстрому включать темы.
← →
Danger © (2007-05-30 18:50) [6]
> Кода это не добавит, но позволяет по быстрому включать темы.
В смысле, позволит быстро перерисовывать по примеру Richedit другие контролы.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.053 c