Форум: "Начинающим";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];
ВнизПрорисовка 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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.045 c