Вниз
Скачать: CL | DM;

DBGrid   Найти похожие ветки 

← →
Potemkin ©   (2002-02-07 09:38) [0]

Есть у этого чудного компонента так называемые FixedColumns, а именно колонка одна по умолчанию. И в зависимости от состояния ДатаСета(Browse, Delete, Insert и т.п.) там меняется вид указателя (треугольник, многоточие, кружок).
Вопрос состит в том как там прорисовать свой указатель, есть поле логическое и в соответствии два указателя, например плюс и минус, надеюсь изложил все достаточно корректно, хотелось мне глупому получить хорошее теоритическое и практическое объяснение по этому вопросу.
Просветите Мастера.
Благодарю за внимание к вопросу.


← →
Gregory   (2002-02-08 08:51) [1]

1. Добавь столбец, например через редактор столбцов в design time (double click на DBGrid), установи ширину, текст заголовка и т.п. Только в FieldName, укажи название не встречающееся в связанном с данным гридом DataSet - например, BoolField1.
2. Создай обработчик события OnDrawColumnCell:

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if DBGrid1.Columns[ DataCol ].FieldName = "BoolField1" then
begin
{ рисуем + или -, например, в зависимости от значения поля в DataSet }
with DBGrid1.Canvas do
begin
Pen.Color := clWindowText;
// линия минуса
MoveTo( Rect.Left + 2, Rect.Top + ( Rect.Bottom - Rect.Top ) div 2 );
LineTo( Rect.Right - 2, Rect.Top + ( Rect.Bottom - Rect.Top ) div 2 );
if ( DataSet[ "field" ] = "<value>" ) then
begin
// линия плюса
MoveTo( Rect.Left + ( Rect.Right - Rect.Left ) div 2, Rect.Top + 2 );
LineTo( Rect.Left + ( Rect.Right - Rect.Left ) div 2, Rect.Bottom - 2 );
end;
end;
end;
end;




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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
3-19082
Tra
2002-02-07 18:52
2002.03.07
Как результат запроса сохранить в txt файл, чтобы потом загрузить на сервер по ftp ?


1-19159
Leonon
2002-02-21 12:40
2002.03.07
Как расположить боксы в нужном порядке?


1-19124
kaif
2002-02-20 13:22
2002.03.07
Знатокам ООП вопрос


1-19197
новенький в Делфи
2002-02-18 21:56
2002.03.07
Матрицы


1-19241
Baz
2002-02-19 15:14
2002.03.07
Хэндл чего я взял?




   Наверх