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

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

Не пойму в чём дело ?! [D7, Paradox]


alpine ©   (2005-10-31 14:12:00) 

Использую DBGridEH. использую один и тот же код в разных формах одной программы

   if DMFrm.TovarQuery.RecordCount>0 then begin
   if key in['0'..'9'] then begin
   EdtFrm.Tag := 0;
   if UpperCase(DBGridEh1.SelectedField.FieldName)<>'PRICE' then
   DBGridEh1.FieldColumns['KOLICHESTVO'].Field.FocusControl;
   EdtFrm.ValEdt.Text := '';
   EdtFrm.ValEdt.Text := EdtFrm.ValEdt.Text + Key;
   EdtFrm.ShowModal;

В одной форме работает отлично, а в другой форме выдаёт ошибку CANOT FOCUS TO INVISIBLE OR DISABLED WINDOW. Ничего не пойму всё там одинаково !!


Johnmen   (2005-10-31 23:56:00) [1]

>Всмысле ?

В смысле, куда должен пойти фокус после FocusControl ?
Думается, что на грид первой формы...:)

Короче, пиши
DBGridEh1.SelectedField:=DBGridEh1.FieldColumns['KOLICHESTVO'].Field;


alpine   (2005-10-31 18:17:00) [2]

Всмысле ? Можно поподробнее ? Пожалуйста я и так стока времени из-за этого потерял ((


Johnmen   (2005-10-31 18:15:00) [3]

В хелпе есть такая строка
Forces a form’s focus to the first data-aware component associated with the field object.
У тебя associated with the field несколько DB-Aware контролов на разных формах.
Вопрос - куда ставить фокус ? :)))))


alpine   (2005-10-31 17:44:00) [4]

У меня 1 проект. Эти формы абсолютно одинаковые (то есть взял сделал копию всех файлов первой формы и сделал там соответствующие названия и изменения и появилась вторая форма. Добавил её в проект и всё нормально работает за исключением вот этого).


Johnmen   (2005-10-31 17:37:00) [5]

Не понял...
У тебя 2 одинаковые формы в приложении или два проекта с одинаковыми формами?


alpine   (2005-10-31 17:20:00) [6]


> Потому, что грид первой формы виден на активной форме.
> На другой форме фокус лезет на первую форму.
> Подробности TField.FocusControl + F1


Как это так ? Ведь другая форма такая же как и первая ... Эта форма сделана как копия первой, только изменил название формы и юнита.


Johnmen   (2005-10-31 16:23:00) [7]


> alpine   (31.10.05 15:06) [3]
> Почему нельзя ? Почему переходит на грид первой формы ?
> Можно поподробнее ? А почему на другой форме этот код работает
> отлично ?!


Потому, что грид первой формы виден на активной форме.
На другой форме фокус лезет на первую форму.
Подробности TField.FocusControl + F1


alpine   (2005-10-31 15:50:00) [8]

2 Erik1

Так ведь я фокусы делаю на одной форме и грид у меня на это форме. а После того как фокус переходит в нужное место в гриде, тогда появляется другая форма.


Erik1   (2005-10-31 15:45:00) [9]

Тяжелый случай, зачем форму до показа фокусами мучать? Поставь свой код в OnShow формы и делай если надо Show или ShowModal форме.


alpine   (2005-10-31 15:29:00) [10]

Подскажите же  в чём может быть проблемма ?!


alpine   (2005-10-31 15:06:00) [11]

2 VAL

Да я сам не могу понять ... Делал пошагова при DBGridEh1.FieldColumns['KOLICHESTVO'].Field.FocusControl; выдаёт ошибку. Может дельфи с ума сходит !!

2 Johnmen

Почему нельзя ? Почему переходит на грид первой формы ? Можно поподробнее ? А почему на другой форме этот код работает отлично ?!


Johnmen   (2005-10-31 14:24:00) [12]

Так делать нельзя.
Ибо при форсировании фокуса, он, в данном случае, переходит на грид первой формы, а он сейчас неактивна или не существует!


Val   (2005-10-31 14:21:00) [13]

не может быть. была бы ошибка в обоих. пошаговая отладка не помогает?


Наверх

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