Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: 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 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.036 c
9-1077637150
Cerber
2004-02-24 18:39
2004.07.04
Приму вдар.


3-1086853160
Dream
2004-06-10 11:39
2004.07.04
добавление записей в Access (ADO)


1-1087534162
sash
2004-06-18 08:49
2004.07.04
трей


1-1087739312
Beginer
2004-06-20 17:48
2004.07.04
Здравствуйте! По поводу преобразования англ. символов в русские


3-1086156863
Denis
2004-06-02 10:14
2004.07.04
Добавление записи через многотабличный запрос (ADOQuery)