Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
ВнизНе пойму в чём дело ?! Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 4.977 c