![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGrig, врисовка прямоугольничка в ячейки одного из столбцов.
Layner © (2003-09-03 13:13:00)
Есть рабочий код для раскраски фона ROW, как бы ещё добавить разнообразия, вставив небольшую фигуру, посмотрите плз, но это я что то пытался дописать, и не получается...
procedure Tmf.RxDBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
BkgColor: TColor;
rect1: TRect;
begin
if not (gdSelected in State) then begin
BkgColor := clWindow;
rect1:=rect(0,0,5,5);
end
else
if TDBGrid(Sender).Focused then
BkgColor := clDefault
else
BkgColor := clMedGray;
TDBGrid(Sender).Canvas.Brush.Color:=BkgColor;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
VAleksey (2003-09-04 13:24:00) [1]
Ну, типа ... я того, ... описАлся немного :-)
ZEE (2003-09-04 13:08:00) [2]
>Layner (04.09.03 09:11) [2]
>как бы ещё по верх разрисовки текст выдать?
TDBGridEh(Sender).Canvas.TextOut()
AndB (2003-09-04 12:55:00) [3]
Ага, а вот все тоже самое, но колонка имеет PickList ;-)
Тогда как? Я пытался THintWindow-ом прикрывать. Получается, но така фигня...
VAleksey (2003-09-04 10:10:00) [4]
TDBGridEh(Sender).Canvas.OutText
Smashich (2003-09-04 09:56:00) [5]
посмотри в хелпе методы canvas
Layner (2003-09-04 09:11:00) [6]
Hooch © (03.09.03 14:43)
Большое спасибо Hooch, вопрос, а как бы ещё по верх разрисовки текст выдать? Сейчас он красиво рисует красную рамку в ячейке, без текста..
Hooch (2003-09-03 14:43:00) [7]
например ...
var
tmp: TRect;
begin
if Column.FieldName = "MyPaintColumn" then
begin
TDBGridEh(Sender).Canvas.Brush.Color := TDBGridEh(Sender).Color;
TDBGridEh(Sender).Canvas.FillRect(Rect);
tmp := Rect;
Windows.InflateRect(tmp,-3,-3);
TDBGridEh(Sender).Canvas.Pen.Color := clRed;
TDBGridEh(Sender).Canvas.Rectangle(tmp);
end
else
begin
TDBGridEh(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;