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

Вниз

Помогите пожалуйста с написанием компонента!   Найти похожие ветки 

 
qwerty2   (2003-01-26 14:12) [0]

Создаю свой компонент на основе DBCheckBox. Поведене компонента должно отличаться от стандартного только тем что при отображении значения NULL в базе в DBCheckBoxе отображать не серую галочку а серый квадратик. Создаю компонент наследник от DBCheckBox и переписываю метод Repaint:

procedure TDBCheckBoxGr.Repaint;
var cbhwnd:HWND;
cbdc:HDC;
R1:TRect;
Br:HBrush;
begin
inherited;
if State=cbGrayed then
begin
cbhwnd:=Handle;
cbdc:=GetDC(cbhwnd);
Br:=CreateSolidBrush(clMedGray);
R1.Left:=2;
R1.Top:=3;
R1.Bottom:=13;
R1.Right:=12;
fillrect(cbdc,R1,Br);
end;
end;


после чего поведение моего компонента ничем не отличается от стандартного хотя переписан метод Repaint. Подскажите пожалуйста что не так!


 
qwerty2   (2003-01-26 15:38) [1]

Неужели никто не знает?


 
Юрий Зотов ©   (2003-01-26 15:55) [2]

Вероятно, метод Repaint просто не вызывается в те моменты, которые Вам нужны. Заместите не Repaint, а обработчик сообщения WM_PAINT - вот там уж точно все сработает.


 
MXA   (2003-01-26 16:25) [3]

procedure BMSETCHECK(var Message: TMessage); message BM_SETCHECK;

...

procedure TMyDBCheckBox.BMSETCHECK(var Message: TMessage);
begin
if Message.WParam=ord(cbGrayed) then
Message.WParam:=ord(cbUnchecked);
inherited;
end;

// может можно как-то проще?



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
6-5118
Slava V.
2002-12-09 14:55
2003.02.03
Определение сетевой активности программ


8-5096
Sergey V. Shadrin
2002-10-10 12:10
2003.02.03
формат файла.


6-5102
Igor_thief
2002-12-07 11:01
2003.02.03
Mail


3-4793
SLON_EKTB
2003-01-16 22:05
2003.02.03
Проблемма работы IB в сервисе NT


14-5272
RGray
2003-01-16 21:03
2003.02.03
Манагер программ + мониторинг инета