Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];




Вниз

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;




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.027 c
1-19151           DHJ                   2002-02-21 11:25  2002.03.07  
Есть DOS приложение. В его окно надо ввести цифру, нажав на клавиатуре.


6-19285           sumy_vlad             2001-12-21 11:03  2002.03.07  
Help


14-19339          Suntechnic            2002-01-23 23:58  2002.03.07  
Вот, наткнулся в Инете....


1-19184           Serega_M              2002-02-14 21:58  2002.03.07  
Расчет больших факториалов (до 100000 !!!!!)


1-19143           Брат                  2002-02-21 09:46  2002.03.07  
Код клавиши Del