|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
DBGrid - цветная строка. как?
Хочу, чтобы при выборе в 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. Где и что забыл - по такому кусочку понять сложно. Но куда копать я вроде ясно разъяснил. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#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; |