![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не пойму в чём дело ?! [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]не может быть. была бы ошибка в обоих. пошаговая отладка не помогает?