Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.20;
Скачать: CL | DM;

Вниз

Не пойму в чём дело ?!   Найти похожие ветки 

 
alpine   (2005-10-31 14:12) [0]

Использую 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. Ничего не пойму всё там одинаково !!


 
Val ©   (2005-10-31 14:21) [1]

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


 
Johnmen ©   (2005-10-31 14:24) [2]

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


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

2 VAL

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

2 Johnmen

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


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

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


 
Erik1 ©   (2005-10-31 15:45) [5]

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


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

2 Erik1

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


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


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


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


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


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


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


 
Johnmen ©   (2005-10-31 17:37) [9]

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


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

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


 
Johnmen ©   (2005-10-31 18:15) [11]

В хелпе есть такая строка
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 18:17) [12]

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


 
Johnmen ©   (2005-10-31 23:56) [13]

>Всмысле ?

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

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



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

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

Наверх




Память: 0.49 MB
Время: 0.054 c
14-1130257723
Умник
2005-10-25 20:28
2005.11.20
Знаки препинания


2-1130428870
Максим
2005-10-27 20:01
2005.11.20
Массив структур


3-1128601467
Shc
2005-10-06 16:24
2005.11.20
Прорисовка DBRichEdit на DBCtrlGrid


2-1130794011
ArchValentin
2005-11-01 00:26
2005.11.20
Хранение информации разных типов в одном файле


2-1131193537
JBL
2005-11-05 15:25
2005.11.20
Rave Reports