Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо