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

Вниз

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

 
vitv ©   (2007-04-12 10:12) [0]

Есть функция прорисовки:
procedure DrawGridCheckBox1(Canvas: TCanvas; Rect: TRect; Checked: boolean);
var
 DrawFlags: Integer;
begin
 Canvas.TextRect(Rect, Rect.Left + 1, Rect.Top + 1, " ");
 DrawFrameControl(Canvas.Handle, Rect, DFC_BUTTON, DFCS_BUTTONPUSH or DFCS_ADJUSTRECT);
 DrawFlags := DFCS_BUTTONCHECK or DFCS_ADJUSTRECT;// DFCS_BUTTONCHECK
 if Checked then
   DrawFlags := DrawFlags or DFCS_CHECKED;
 DrawFrameControl(Canvas.Handle, Rect, DFC_BUTTON, DrawFlags);
 end;
Проблема в том, что если изменяешь высоту ячейки, то чекбокс растягивается на всю её длинну/ширину? Не подскажите как сделать так, чтобы сохранялись исходный размеры бокса?


 
ЮЮ ©   (2007-04-12 10:20) [1]

Установить Rect таким, каким считаешь нужным, а не использовать именно то значения, что передано в качестве параметра, например:
begin
Canvas.TextRect(Rect, Rect.Left + 1, Rect.Top + 1, " "); // нафиг это вообще?
Rect.Right := Rect.Left + Canvas.TextWidth("Щ");
Rect.Bottom := Rect.Top + CHECK_BOX_HEIGHT; // заданное(рассчитанное один раз) значение
...


 
vitv ©   (2007-04-12 11:11) [2]


> Canvas.TextRect(Rect, Rect.Left + 1, Rect.Top + 1, " ");
>  // нафиг это вообще?

Без этого строка текста отрисовывается во всех ячейках грида.
Большое СПАСИБО за помощь.



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

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

Наверх




Память: 0.47 MB
Время: 0.078 c
2-1176037710
pound
2007-04-08 17:08
2007.04.29
В редакторе TValueListEditor в событии OnValidate проверяю


1-1173171684
tytus
2007-03-06 12:01
2007.04.29
Как узнать высоту заголовка окна?


2-1175886508
Frozen
2007-04-06 23:08
2007.04.29
Выравнивание текста по щирине


6-1162525572
tarantul_ip02
2006-11-03 06:46
2007.04.29
Сделал бота для сетей irc. Есть проблема.


15-1175434312
Cyrax
2007-04-01 17:31
2007.04.29
Photoshop: несколько надписей на одном текстовом слое...