![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Хочу, чтобы при выборе в DBGrid выделялась не отдельная ячейка, а вся строка. Каким-нибудь цветом... Кажется, что не сложно, но не пойму как
![]() Код:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect:TRect; Field: TField; State: TGridDrawState); begin if gdFocused in State then with (Sender as TDBGrid).Canvas do begin Brush.Color := clRed; FillRect(Rect); TextOut(Rect.Left, Rect.Top, Field.AsString); end; end; КОгда использую эту процедуру пишет что, Undeclared identifier: 'TField' Последний раз редактировалось Admin, 15.05.2009 в 20:26. |
|
#2
|
||||
|
||||
|
Переводим: Не определён идентификатор: 'TField'
Смотрим: первая же строка: Код:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect:TRect; Field: TField; State: TGridDrawState); ... Напортачил с Юзесами. Вероятно, нет какого-то модуля, где и описан этот TField. Где и что забыл - по такому кусочку понять сложно. Но куда копать я вроде ясно разъяснил. |
|
#3
|
|||
|
|||
|
Вместо
TextOut лучше (кроме частных случаев) использовать DBGridl.DefaultDrawDataCell(Rect, Field, State); |
|
#4
|
|||
|
|||
|
Реальный фрагмент :
Код:
procedure TForm1.DBGrid_WellDrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState);
Var
Yes : integer;
begin
Yes :=0;
with DBGrid_Well.Canvas do
begin
if (not (gdFocused in State)) then begin
if Query_WellITS_DUBIOUS.AsInteger>0 then begin
Brush.Color:=clYellow;
Yes :=1;
end;
if Yes>0 then begin
FillRect(Rect);
DBGrid_Well.DefaultDrawDataCell(Rect, Field, State);
end;
end;
end;
end;
|
|
#5
|
|||
|
|||
|
а что такое Query_WellITS_DUBIOUS.AsInteger ?
|
|
#6
|
|||
|
|||
|
Цитата:
Это объект TField. Можно и так : Query_Well.FieldByName('ITS_DUBIOUS').AsInteger В Вашем случае (если Вы не хотите выделять строку по условию) - это можно упустить. |
|
#7
|
|||
|
|||
|
никакого условия нет, надо выделять просто мышью, но не получается
![]() |
|
#8
|
|||
|
|||
|
В Вашем вопросе не было упоминания о мыши (или я не прав?).
Формулируйте вопросы точнее. |
|
#9
|
|||
|
|||
|
Код:
...
DBGrid.Options:=DBGrid.Options+[dgRowSelected];
...
...
procedure TDlg_SysCalend.DBGrid_CDrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState);
begin
with DBGrid.Canvas do
begin
if (gdSelected in State) then begin
Brush.Color:=clYellow;
Font.Color:=clBlack;
FillRect(Rect);
DBGrid_C.DefaultDrawDataCell(Rect, Field, State);
end;
end;
end; |