Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
6-1175690109
Мимопроходящий
2007-04-04 16:35
2007.12.09
TWebBowser


15-1194896394
Tracy Hide
2007-11-12 22:39
2007.12.09
Касательно ИИ


2-1194979634
vegarulez
2007-11-13 21:47
2007.12.09
Вопрос про Font при выводе на принтер.


3-1180525450
jack128
2007-05-30 15:44
2007.12.09
Работа с FB из нескольких потоков


15-1194942797
Slider007
2007-11-13 11:33
2007.12.09
С днем рождения ! 13 ноября 2007 вторник





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