![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
фокус ввода [D7, IB6.x]
Belkova © (2004-06-08 13:46:00)Мастера Delphi! подскажите, пожалуйста, передаю фокус ввода на DBgrid следующим образом:
DBgrid.Fields[3].focusControl ;
на что выдает сообщение об ошибке, что не может передать фокус на invisible or disabled windows. св-ва visible=true и enabled=true; Почему такое может быть?
Petr V. Abramov (2004-06-08 21:34:00) [1]Затвор с дулом не путайте
При переходе в dsBrowse InplaceEditor не уничтожается.
Vlad (2004-06-08 21:21:00) [2]
> Petr V. Abramov © (08.06.04 21:05) [16]
> Не "когда DataSet в dsBrowse" а до вызова CreateEditor.
-Рядовой Петров, отвечать - из чего сделан затвор автомата ?
-Из стали, тащ подполковник...
-Правильно, а из чего сделано дуло автомата ?
-Тоже из стали, тащ подполковник
-А вот и нет, рядовой Петров... (цитируя учебник).. дуло автомата сделано из того же материала!
Petr V. Abramov (2004-06-08 21:05:00) [3]> Он вобще nil когда DataSet в dsBrowse
Не "когда DataSet в dsBrowse" а до вызова CreateEditor.
Vlad (2004-06-08 20:57:00) [4]
> Petr V. Abramov © (08.06.04 20:52) [14]
InplaceEditor тут не причем.
Он вобще nil когда DataSet в dsBrowse
Petr V. Abramov (2004-06-08 20:52:00) [5]InplaceEditor грида не обязан всегда быть "enabled" и "visible"
Belkova (2004-06-08 20:05:00) [6]Спасибо, проблема решилась. Может быть еще есть какие-то мысли почему не стало работать.
Petr V. Abramov (2004-06-08 19:50:00) [7]DBgrid.SetFocus;
DBGrid.SelectedIndex := 1 // номер колонки, которую надо выделить
Belkova (2004-06-08 19:21:00) [8]На событие OnKeypress
If Key=#13 then
case DBGridNew.Col of
1: DBGridNew.Fields[3].FocusControl;
2: DBGridNew.Fields[3].FocusControl;
3: DBGridNew.Fields[3].FocusControl;
4: DBGridNew.Fields[4].FocusControl;
5: begin
FDMT.TblItems.Next;
DBGridNew.Fields[3].FocusControl;
end;
end;
Johnmen (2004-06-08 19:13:00) [9]>Vlad © (08.06.04 19:07) [8]
>> DBgrid.Fields[3].focusControl ;
>Эта конструкция вполне рабочая.
Но цель другая. В хелпе про это сказано....
TohaNik (2004-06-08 19:12:00) [10]>Эта конструкция вполне рабочая.
Как обычно вероятно Fields менялись, а там индекс, ну или в гриде
нет колумна или visible- false:)
Vlad (2004-06-08 19:07:00) [11]
> DBgrid.Fields[3].focusControl ;
Эта конструкция вполне рабочая.
Приведите полный код процедуры, а так же укажите на какое событие она выполняется
TohaNik (2004-06-08 19:05:00) [12]Наверное так работало MyDataSetMyField.FocusControl
Belkova (2004-06-08 18:57:00) [13]1. Как сделать, чтобы курсор был в нужной ячеейке?
2. Почему до сегоднящнего дня все это работало?
Johnmen (2004-06-08 18:52:00) [14]>DBGrid фокус получает нормально, а DBGrid.Fields[i] никак.
Потому, что DBGrid.Fields[i] не явл.контролом и не может иметь фокуса...
Belkova (2004-06-08 18:37:00) [15]DBGrid фокус получает нормально, а DBGrid.Fields[i] никак.
blackman (2004-06-08 17:31:00) [16]В приведенном примере курсор помещается во вторую позицию,
текст внутри ячейки не выделяется.
Пример:
procedure TForm1.Button1Click(Sender: TObject);
var
h : THandle;
begin
Application.ProcessMessages;
DbGrid1.SetFocus;
DbGrid1.EditorMode := true;
Application.ProcessMessages;
h:= Windows.GetFocus;
SendMessage(h, EM_SETSEL, 2, 2);
end;
Belkova (2004-06-08 14:13:00) [17]И что делать?
Johnmen (2004-06-08 13:55:00) [18]DBgrid.SetFocus;
>Почему такое может быть?
Потому, что не видим контрола...:)