Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.23;
Скачать: CL | DM;

Вниз

ооп вопрос   Найти похожие ветки 

 
серж   (2008-02-20 14:39) [0]

Нужен наследник TComboBox, ну точнее наверное TCustomComboBox, в котором я хочу изменить отрисовку в
procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM;

Как это следует сделать? Посмотрите реализацию TCustomComboBox, подскажите пожалуйста.


 
Palladin ©   (2008-02-20 14:41) [1]

а зачем? наследоваться необязательно... TComboBox предоставляет для этого все возможности...


 
серж   (2008-02-20 14:52) [2]

Может быть и зря я пытаюсь это сделать. Ниже есть тема, где есть описание самой проблемы: http://delphimaster.net/view/2-1203486854/

У меня не получилось исправить ситуацию через OnDrawItem в TComboBox.

В итоге, я хочу исправить обработчик только одной строкой:
procedure TCustomComboBox.CNDrawItem(var Message: TWMDrawItem);
var
 State: TOwnerDrawState;
begin
 with Message.DrawItemStruct^ do
 begin
   State := TOwnerDrawState(LongRec(itemState).Lo);
   if itemState and ODS_COMBOBOXEDIT <> 0 then
     Include(State, odComboBoxEdit);
   if itemState and ODS_DEFAULT <> 0 then
     Include(State, odDefault);
   FCanvas.Handle := hDC;
   FCanvas.Font := Font;
   FCanvas.Brush := Brush;
   if (Integer(itemID) >= 0) and (odSelected in State) then
   begin
     FCanvas.Brush.Color := clHighlight;
     FCanvas.Font.Color := clHighlightText
   end;
   if Integer(itemID) >= 0 then
     DrawItem(itemID, rcItem, State) else
     FCanvas.FillRect(rcItem);                  
    if Integer(itemID) <> -1 then          
      if (odFocused in State) then DrawFocusRect(hDC, rcItem);
   FCanvas.Handle := 0;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2008.03.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
15-1202477158
ПЛОВ
2008-02-08 16:25
2008.03.23
Есть ли уже подобное средство...


2-1203672334
Ковалев Г.Н
2008-02-22 12:25
2008.03.23
Borland Delphi 2006


15-1202831227
Nucer
2008-02-12 18:47
2008.03.23
Лицензирование Windows 2003 Server Standard


15-1202685792
Land
2008-02-11 02:23
2008.03.23
Можно ли у произвольного рекорда узнать названия полей и их типы?


9-1168391727
Coll
2007-01-10 04:15
2008.03.23
Библиотеки проверки столкновений?