Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
Время: 0.06 c
3-1128938404
Boogier
2005-10-10 14:00
2005.11.20
Delphi+Ado+Access+Действительное поле = несоответствие типов данн


11-1111916035
RadaR
2005-03-27 13:33
2005.11.20
UNICODE


2-1130857904
md
2005-11-01 18:11
2005.11.20
типы extended и integer


2-1130849562
BFG9k
2005-11-01 15:52
2005.11.20
Закрытие программы в OnCreate


2-1130741502
Fostr
2005-10-31 09:51
2005.11.20
TListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский