Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Порядок создания объектов на форме  [new]
abcdefgh
Guest
В методе Init объекта, создаваемого на форме, обращаюсь к другому объекту этой формы и выясняю, что он еще не создан. Чем определяется порядок создания объектов, можно ли его изменить ?
25 сен 06, 17:05    [3180947]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
karly™
Guest
abcdefgh
В методе Init объекта, создаваемого на форме, обращаюсь к другому объекту этой формы и выясняю, что он еще не создан. Чем определяется порядок создания объектов, можно ли его изменить ?

Обращайся не из Init объекта, а из Init формы. Тогда все объекты будут гарантированно существовать.
25 сен 06, 17:37    [3181148]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
abcdefgh
Guest
Нэ удобна
25 сен 06, 17:56    [3181298]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
alex11100
Guest
можно и изменить

если положите эти 2 объекта к примеру в контейнер
и его уже будете добавлять в форму
25 сен 06, 17:58    [3181312]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
abcdefgh
Guest
Хреново
25 сен 06, 18:05    [3181371]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
alex11100
Guest
что Вам не нравится?
... тем более можно нормально по-русски объяснить.
или Вы здесь так-же как у пивного ларька общаться будете?
25 сен 06, 18:12    [3181408]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
abcdefgh
Guest
To alex11100
Зачэм так остра воспринымат
25 сен 06, 18:26    [3181477]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
alex11100
Guest
а зачем так остро писать?

кому оно нужно?
мне - нет.

Вам ответили - в ините формы
если форма - scx, то инит отработает после взлета всех контролов

если vcx, то вначале контролы взлетают, а затем
происходит инит класса-формы

наличие контрола можно проверить
с пом.
if type('thisform.text..')=="O" anf !isnull(thisform.text..)

если у Вас контролы работают парой,
то и создавайте свой контрол или контейнер
25 сен 06, 18:33    [3181506]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
abcdefgh
Guest
Знаю все. Не подходит.
Есть много текстбоксов, есть кнопка.
На момент инита текстбокса кнопки нет.
Я и спрашиваю, как их иниты поменять местами. Нельзя - значит нельзя.
25 сен 06, 18:40    [3181532]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
alex11100
Guest
там где ошибка появляется
у текстбоксов ставьте костыль
if type('thisform.cmd')=="O" and !isnull ....
25 сен 06, 19:11    [3181701]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
abcdefgh
Guest
Мне не ошибку надо перехватить, а порядок поменять ))):
25 сен 06, 19:25    [3181745]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
karly™
Guest
А что именно ты проверяешь у кнопки из текстбокса? Свойство? Вызываешь метод?

Если это свойство/метод настолько важны, сделай их свойством/методом формы. И из текстбокса, и из кнопки обращайся к свойству/методу формы. Форма будет существовать всегда (ну или почти всегда ;) )
25 сен 06, 19:49    [3181822]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
abcdefgh
Мне не ошибку надо перехватить, а порядок поменять ))):

"Может в консерватории что-то подправить?" (с)

Ты пытаешся узнать, не как решить задачу, а как решить задачу определенным способом.

"Закладываться" на физический порядок инициализации обектов, это все-равно что писать SQL-запросы "закладываясь" на физический порядок следования полей. Результат в обоих случаях будет малопредсказуемый. Может "прокатить", но может и нет.

Изменить порядок инициализации объектов формы можно. Но примерно также, как физический порядок следования полей в таблице. Путем удаления и создания заново, исходя из предположения, что новый объект всегда создается после уже существующих. А оно тебе надо? Как ты потом будешь выпутываться, если потребуется переместить объект в другой контейнер. Опять по новой пересоздавать все объекты?

Меняй логику работы. Как именно? Для этого надо знать, что собственно ты хочешь сделать. Т.е. зачем тебе надо знать реквизиты нескольких объектов одновременно?
26 сен 06, 12:08    [3183955]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
abcdefgh
Guest
Вопрос снимается.
26 сен 06, 12:32    [3184171]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
foxik
Member

Откуда:
Сообщений: 19
С точки зрения новичка т.е. меня , вопрос мистера abcdefgh'a всё-таки актуален.
Ведь основная концепция ООП- каждый объект должен работать самостоятельно (sorry за чугунную формулировку). А как я смогу наполнить например курсор для grid'а в init'e этого самого grid'а, если параметр для его наполнения принимается в init'e формы, который происходит в последнюю очередь. Значит там же приходится делать все динамические настройки объектов формы. В итоге на страничке с кодом form.Init-чёрт ногу сломит.
Я подозреваю, что для этой ситуации имеицца простое решение. Хотелось бы знать, какое (хотя бы в общих чертах...)
27 окт 06, 18:18    [3323150]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8871
foxik
А как я смогу наполнить например курсор для grid'а в init'e этого самого grid'а, если параметр для его наполнения принимается в init'e формы, который происходит в последнюю очередь. Значит там же приходится делать все динамические настройки объектов формы. В итоге на страничке с кодом form.Init-чёрт ногу сломит...

Это зависит, но многие, включая меня - делают в Init... Не нравится много кода - создайте на форме свои методы - туда свой код, ну а в Init просто вызывайте эти методы...

Как сказал один непризнанный гений : "Если программа содержит более одной экранной страницы кода - это плохо"...
27 окт 06, 19:15    [3323480]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
Прапорщик Патросюк
Guest
Зачем Вы так, Сергей ? :) К Вам тож много вопросов, а в сосстоянии опьянения и хамских. Их как видите в посленее время не задают ? :)
27 окт 06, 22:42    [3323960]     Ответить | Цитировать Сообщить модератору
 Re: Порядок создания объектов на форме  [new]
Прапорщик Патросюк
Guest
А что там с переспиской с жучарой Леви ? Вы контакт поддерживаете ? ИЛИ пересели на ASP.NET+ C# ? :)
27 окт 06, 22:45    [3323963]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить