Вниз
Скачать: CL | DM;

фокус ввода   Найти похожие ветки 

← →
Belkova   (2004-06-08 13:46) [0]

Мастера Delphi! подскажите, пожалуйста, передаю фокус ввода на DBgrid следующим образом:
DBgrid.Fields[3].focusControl ;
на что выдает сообщение об ошибке, что не может передать фокус на invisible or disabled windows.  св-ва visible=true и enabled=true; Почему такое может быть?


← →
Johnmen ©   (2004-06-08 13:55) [1]

DBgrid.SetFocus;
>Почему такое может быть?
Потому, что не видим контрола...:)


← →
Belkova   (2004-06-08 14:13) [2]

И что делать?


← →
blackman ©   (2004-06-08 17:31) [3]

В приведенном примере курсор помещается во вторую позицию,
текст внутри ячейки не выделяется.
Пример:
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 18:37) [4]

DBGrid фокус получает нормально, а DBGrid.Fields[i] никак.


← →
Johnmen ©   (2004-06-08 18:52) [5]

>DBGrid фокус получает нормально, а DBGrid.Fields[i] никак.

Потому, что DBGrid.Fields[i] не явл.контролом и не может иметь фокуса...


← →
Belkova   (2004-06-08 18:57) [6]

1. Как сделать, чтобы курсор был в нужной ячеейке?
2. Почему до сегоднящнего дня все это работало?


← →
TohaNik ©   (2004-06-08 19:05) [7]

Наверное так работало MyDataSetMyField.FocusControl


← →
Vlad ©   (2004-06-08 19:07) [8]


> DBgrid.Fields[3].focusControl ;

Эта конструкция вполне рабочая.
Приведите полный код процедуры, а так же укажите на какое событие она выполняется


← →
TohaNik ©   (2004-06-08 19:12) [9]

>Эта конструкция вполне рабочая.

Как обычно вероятно Fields менялись, а там индекс, ну или в гриде
нет колумна или visible- false:)


← →
Johnmen ©   (2004-06-08 19:13) [10]

>Vlad ©   (08.06.04 19:07) [8]
>> DBgrid.Fields[3].focusControl ;
>Эта конструкция вполне рабочая.

Но цель другая. В хелпе про это сказано....


← →
Belkova   (2004-06-08 19:21) [11]

На событие 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;


← →
Petr V. Abramov ©   (2004-06-08 19:50) [12]

DBgrid.SetFocus;
DBGrid.SelectedIndex := 1 // номер колонки, которую надо выделить


← →
Belkova   (2004-06-08 20:05) [13]

Спасибо, проблема решилась. Может быть еще есть какие-то мысли почему не стало работать.


← →
Petr V. Abramov ©   (2004-06-08 20:52) [14]

InplaceEditor грида не обязан всегда быть "enabled" и "visible"


← →
Vlad ©   (2004-06-08 20:57) [15]


> Petr V. Abramov ©   (08.06.04 20:52) [14]

InplaceEditor тут не причем.
Он вобще nil когда DataSet в dsBrowse


← →
Petr V. Abramov ©   (2004-06-08 21:05) [16]

> Он вобще nil когда DataSet в dsBrowse
Не "когда DataSet в dsBrowse" а до вызова CreateEditor.


← →
Vlad ©   (2004-06-08 21:21) [17]


> Petr V. Abramov ©   (08.06.04 21:05) [16]


> Не "когда DataSet в dsBrowse" а до вызова CreateEditor.

-Рядовой Петров, отвечать - из чего сделан затвор автомата ?
-Из стали, тащ подполковник...
-Правильно, а из чего сделано дуло автомата ?
-Тоже из стали, тащ подполковник
-А вот и нет, рядовой Петров... (цитируя учебник).. дуло автомата сделано из того же материала !


← →
Petr V. Abramov ©   (2004-06-08 21:34) [18]

Затвор с дулом не путайте

 При переходе в dsBrowse InplaceEditor не уничтожается.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.022 c
3-1086599857
Сергей Ю.
2004-06-07 13:17
2004.07.04
Подключение к MSSQL Serverу


1-1087953723
olhovik
2004-06-23 05:22
2004.07.04
Файл базы данных .db


14-1087350281
Думкин
2004-06-16 05:44
2004.07.04
С днем рождения! 16 июня


1-1087547319
Andrew2
2004-06-18 12:28
2004.07.04
Много процессов - одна DLL


3-1086347728
Shade
2004-06-04 15:15
2004.07.04
Содержимое Blob поля надо поместить в MS Word (TwordApplication)




   Наверх