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

Вниз

Выделение в ComboBoxEx   Найти похожие ветки 

 
ggg   (2007-09-24 09:09) [0]

Проблема в том, что при выборе элемента в выпадающем списке, активная строка выделяется не полностью, а только на длину текста в ней. Пробывал перекрывать процедуру рисования элементов - не получилась, видимо там событие отличное от аналогичного в ComboBox. Может быть есть простое решение (свойство вроде FULLROWSELECT) или кто подскажет какое событие надо обрабатывать, чтобы самому нарисовать элементы?


 
Вася Правильный   (2007-09-24 11:19) [1]


>  активная строка выделяется не полностью

и что в этом криминального? стандартное поведение


 
Leonid Troyanovsky ©   (2007-09-24 11:45) [2]


> Вася Правильный   (24.09.07 11:19) [1]

> и что в этом криминального? стандартное поведение

Видимо, имелся ввиду выпадающий список.

> ggg   (24.09.07 09:09)

Что за компонент и почему б не взять стандартный?

--
Regards, LVT.


 
Вася Правильный   (2007-09-24 12:07) [3]


> почему б не взять стандартный?

да он и есть стандартный в семерке


 
ggg   (2007-09-24 12:27) [4]

> Вася Правильный   (24.09.07 11:19) [1]
>>  активная строка выделяется не полностью

>и что в этом криминального? стандартное поведение

Абсолютно так же считаю, но заказчику не нравится, что стиль оформления простых выпадающих списков, отличается от стиля списков с картинками.

> Leonid Troyanovsky ©
Это стандартный компонент - TComboBoxEx. Более того, за его отрисовку отвечает не VCL, а система, почему и не получается просто переделать стандартный :(


 
Вася Правильный   (2007-09-24 12:35) [5]

так поступи наоборот - используй обычный комбо со своейотрисовкой рисунков


 
ggg   (2007-09-24 13:19) [6]

Боюсь, это уже не вариант, хотят именно выделение всей строки ;)


 
Lacmus ©   (2007-09-24 13:20) [7]

>ggg   (24.09.07 09:09)  



unit Unit73;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ComCtrls, ImgList;

type
 TMyComboBoxEx = class(TComboBoxEx)
   procedure WMDrawItem(var aMessage: TWMDrawItem); message WM_DRAWITEM;
 end;

 TComboBoxEx = class(TMyComboBoxEx);

 TForm73 = class(TForm)
   ComboBoxEx1: TComboBoxEx;
   ComboBox1: TComboBox;
   ImageList1: TImageList;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form73: TForm73;

implementation

{$R *.dfm}

procedure TMyComboBoxEx.WMDrawItem(var aMessage: TWMDrawItem);
var
 bFocused: Boolean;
 Brush: HBrush;
begin
 with aMessage.DrawItemStruct^ do begin
   if (ItemState and ODS_COMBOBOXEDIT) = 0 then begin
     bFocused := itemAction = ODA_FOCUS;
     if bFocused then
       itemAction := ODA_SELECT;
     itemState := itemState and not ODS_FOCUS;
     if (itemState and ODS_SELECTED) <> 0 then
       Brush := CreateSolidBrush(ColorToRGB(clHighlight))
     else
       Brush := CreateSolidBrush(ColorToRGB(clWindow));
     try
       FillRect(hDC, rcItem, Brush)
     finally
       DeleteObject(Brush)
     end
   end else
     bFocused := False;
   inherited;
   if bFocused then
     DrawFocusRect(hDC, rcItem)
 end;
end;



 
ggg   (2007-09-24 13:59) [8]

> Lacmus ©  
Спасибо =)



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

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

Наверх




Память: 0.48 MB
Время: 0.028 c
1-1191010267
antonn
2007-09-29 00:11
2007.12.16
Права на запись в папку


15-1195546975
Kolan
2007-11-20 11:22
2007.12.16
А какназфвается сайт где хронится история сайтов.


15-1195213340
Dark
2007-11-16 14:42
2007.12.16
Отладка программы или неуловимый глюк


15-1195221671
antonn
2007-11-16 17:01
2007.12.16
мануалы по regexp в mysql


1-1190905720
Lamer666
2007-09-27 19:08
2007.12.16
TreeView.OnEdited