Главная страница
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.017 c
9-1168164864
DJ KARIES
2007-01-07 13:14
2008.03.23
Yok - игры на Delphi, OpenGL без VCL


3-1193655575
Ega23
2007-10-29 13:59
2008.03.23
Есть ли готовый потомок TDataLink в VCL


2-1203588470
oleg_teacher
2008-02-21 13:07
2008.03.23
Свое расширение на файл.


2-1204092389
Тимон.
2008-02-27 09:06
2008.03.23
Вопрос по TSQLConnection


15-1202597190
Андрей
2008-02-10 01:46
2008.03.23
разбирайте кто хочет