Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

фокус ввода [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;
>Почему такое может быть?
Потому, что не видим контрола...:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо