Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > как в DBGrid подсветить нужную ячейку


Автор: Digo 25.10.2004, 10:49
Подскажите пожалуйста как в DBGrid подсветить нужную ячейку (т.е. устанавить курсор в нее )
Спасибо.

Автор: Dayana 25.10.2004, 13:54
Используй property SelectedField...

Автор: Digo 25.10.2004, 17:57
А точнее?

Автор: Pakshin A. S. 25.10.2004, 17:59
1) Ищем нужный нам Field
SomeField:=DBGrid1.Feilds[No];
2) Присваиваем его
DBGrid1.SelectedField:=SomeField

Вроде так...

Автор: Digo 25.10.2004, 19:27
А как с SomeField быть? в смысле описания.

Автор: Pakshin A. S. 25.10.2004, 21:09
ИМХО, того же типа, что и SelectedField, т. е. (если память не изменяет) TField... :D

Автор: Digo 25.10.2004, 21:34
Я просто с классами еще не много работал, где его описывать?

Автор: Pakshin A. S. 26.10.2004, 17:57
Даа...
Код

var
SomeField:TField;
begin
{Поиск, надеюсь сам организуешь}
DBGrid1.SelectedField:=SomeField;
end;

Автор: Digo 26.10.2004, 20:09
СпасибоPakshin A. S. за помощь. Только я так уже пробывал описывать возникает ошибка undeclareited indefender 'TField'
Я и так пытался:
SomeField:=DataModule1.CardList.Fields[j].FieldNo;
DBGrid2.SelectedField.FieldNo:=SomeField;
возникает ошибка только чтение...

Автор: Pakshin A. S. 26.10.2004, 20:29
Для того, чтобы виден был тип TField надо добавить
Код

uses ..., DB;

:)

Автор: Digo 26.10.2004, 21:05
Спасибо что просветили неуча :stena просто с типами такими не встречался раньше...
Прога работает но не выделяет нужную ячейку.

Автор: Guest 27.10.2004, 11:06
1. наити нужную запис
2. переити в нужное поле

Автор: Pakshin A. S. 27.10.2004, 19:23
Может так подойдет:
Код

var
Naid:boolean;
i:integer;
begin
Naid:=false;
Table1.First;
while not Table1.Eof do
 begin
  for i:=0 to Table1.FieldCount-1 do
   if DBGrid1.Fields[i].AsString = 'asdf'
    then
     begin
      b:=true;
      DBGrid1.Fields[i].FocusControl;
     end;
  if not b
   then
    Table1.Next;
 end;
end;

:D
Добавлено @ 19:26
Добиться выделения можно (реального, без предложения редактирования) превратив dgEditing в Options в False...

Но и без этого работает! :D

Автор: Digo 27.10.2004, 20:22
Я так понял это поиск, у меня немного другая структура и ищу я по 2 таблицам мастер - детальный. Я вставляю в условие равенства поля и поискового значения DBGrid1.Fields[i].FocusControl; Пишет ошибку Cannot focus a disabled or invisible window :(

Автор: Pakshin A. S. 27.10.2004, 20:57
Не знаю, но у меня этот код вроде работает...

Автор: Digo 28.10.2004, 20:35
Спасибо. :)

Автор: Pakshin A. S. 28.10.2004, 20:38
Заработало?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)