Главная страница
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.014 c
14-19320
Феликс
2002-01-22 02:20
2002.03.07
Оплата через Интернет?


1-19223
Johnmen
2002-02-19 17:01
2002.03.07
Тень отца Гамлета


1-19208
Кое кто
2002-02-19 09:06
2002.03.07
Install Shild Express


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


7-19361
Прикольщик
2001-12-03 21:05
2002.03.07
Буду орать до тех пор пока хоть кто нибудь не откликнется! Люди добрые помогите!