Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.07;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.007 c
3-19092
Mishka
2002-02-08 21:33
2002.03.07
Delphi+MS SQL


1-19261
Андрей Сенченко
2002-02-11 10:27
2002.03.07
Теория и практика работы с ресурсами.


1-19180
Alexandr_
2002-02-18 14:18
2002.03.07
Как переопределить метод OnResize


4-19385
AntBofh
2002-01-10 14:31
2002.03.07
Тупой вопрос !!! Про реестр!


3-19055
Bormanoid
2002-02-07 21:58
2002.03.07
Смена позиции курсора или Query.RecNo глючит...