Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Init() в базовой форме не отрабатывает / 18 сообщений из 18, страница 1 из 1
29.10.2007, 13:21
    #34901375
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
Привет всем!

VFP9SP1 есть класс формы "clsForm", на его основе класс "clsFormEdit" в обоих классах прописан Init(). В clsFormEdit.Init() вызывается DoDefault(). Ну и форма на основе clsFormEdit где в Init() ничего не прописано.

Уже который раз такой глюк происходит: В один прекрасный момент DoDefault() в clsFormEdit перестает работать. По происходящему видно что не выполняется код из clsForm.Init(). Лечится путем открытия кода clsForm.Init() добавлением пробела и закрытием с сохранением.
Причем clsForm я практически не трогаю. Слетает непонятно в какой момент. И с другими методами бывает, просто в Init() чаще DoDefault() вызываю. clsFormEdit - для примера привел, с другими дочерними классами от "clsForm" такая же ерунда.
Никаких некорректных завершений фокса не происходит.

Кто-нибудь с таким сталкивался? Чем полечить? А то как-то напрягать начинает. Вдруг завтра вообще код в форме пропадет.
...
Рейтинг: 0 / 0
29.10.2007, 13:52
    #34901498
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
Нифга не понял - если в clsForm.INit пусто - (потому как туда потом пробел запихивали) то что должно сработать-то ?

"Бездоказательно дорогой профессор" (с)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
CreateObject("My")

Define Class My as clsFormEdit

	Procedure init
	With this
		Activate Screen
		? 'My'
		DoDefault()
	EndWith

EndDefine 


Define Class clsFormEdit as clsForm

	Procedure init
	with this
		Activate Screen
		? 'clsFormEdit'
		DoDefault()
	EndWith

EndDefine 


Define Class clsForm as Form

	Procedure init
	Activate Screen
	? 'clsForm'

EndDefine
...
Рейтинг: 0 / 0
29.10.2007, 14:16
    #34901605
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
pivaНифга не понял - если в clsForm.INit пусто - (потому как туда потом пробел запихивали) то что должно сработать-то ?

"Бездоказательно дорогой профессор" (с)
Да не пробел в ините. Когда сглючивает - открываю clsForm.Init() далее докнопочно: курсор в конец строки, "Пробел", "BackSpace", закрываем крестиком, на вопрос "Сохранить?" - "Да". Начинает работать до следующего раза.

Было б "доказательно" сам бы разобрался. Специально воспроизвести не получается. А так 1-2 раза в день сглючивает, зависимости не понятны. Думал может кто такое уже наблюдал
...
Рейтинг: 0 / 0
29.10.2007, 14:19
    #34901622
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
Может все-таки использовать тогда clsForm::Init() ?
...
Рейтинг: 0 / 0
29.10.2007, 14:35
    #34901683
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
pivaМожет все-таки использовать тогда clsForm::Init() ?
Не знал что такой синтаксис в фоксе есть. Поменял. Если снова сглючит - отпишусь.

PS Забыл выше сообщить что классы в VCX-ах
...
Рейтинг: 0 / 0
29.10.2007, 14:40
    #34901699
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
сделайте и покажите пример, демонстрирующий проблему

и если не сложно, то тот код,
который у Вас нестабильно работает
...
Рейтинг: 0 / 0
29.10.2007, 14:45
    #34901720
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
прошелмимосделайте и покажите пример, демонстрирующий проблему

и если не сложно, то тот код,
который у Вас нестабильно работает
Знать бы как ...

Dima T...
Было б "доказательно" сам бы разобрался. Специально воспроизвести не получается. А так 1-2 раза в день сглючивает, зависимости не понятны. Думал может кто такое уже наблюдал
...
Рейтинг: 0 / 0
29.10.2007, 14:49
    #34901733
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
Покривели мемо поля классов возможно - pack на них или Copy to и Cleanup Project - уж как минимум

ЗЫ - не люблю я VCX - видима потому что не умею готовить наверное
...
Рейтинг: 0 / 0
29.10.2007, 15:05
    #34901808
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
pivaПокривели мемо поля классов возможно - pack на них или Copy to и Cleanup Project - уж как минимум pack и Cleanup Project делал пару раз. Спасают только "пробелы". У меня тоже подозрения на мемо-поля, откомпилированный код куда-то уезжает, но я ж этот класс (clsForm) не трогаю. В производном ковыряюсь. Непонятно ничего. В VFP6 такого ни разу не видел.

Более правдоподобной кажется версия что DoDefault() криво ссылку на родительский класс получает. И ничего не делает. Тогда clsForm::Init() может и спасет. Спасибо за подсказку.

pivaЗЫ - не люблю я VCX - видима потому что не умею готовить наверное
А зря, они такие вкусные
...
Рейтинг: 0 / 0
29.10.2007, 15:54
    #34902042
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
авторДумал может кто такое уже наблюдал

50 тыс пользователей
Vfp 9 sp2 - проблем не вижу

а вот с формами были
...
Рейтинг: 0 / 0
29.10.2007, 16:02
    #34902085
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
У меня количество пользователей несколько меньше, но что-то никогда таких проблем не было.
...
Рейтинг: 0 / 0
29.10.2007, 16:10
    #34902123
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
если есть время на научный эксперимент,
возможно кто-то расценит шаманством, но предлагаю сделать так

от базового класса сделать clsForm
положить в 1-ю виз. библ-ку

пронаследовать от clsForm класс clsFormEdit
и положить его во 2-ю - в свою (другую) виз.библ-ку

посмотреть рез-т
...
Рейтинг: 0 / 0
29.10.2007, 16:26
    #34902220
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
прошелмимо авторДумал может кто такое уже наблюдал

50 тыс пользователей
Vfp 9 sp2 - проблем не вижу

а вот с формами были
Все 50 тыс с SP2? Он только вышел, а как ты так быстро рантайм всем заменил? Я не поиздеваться, просто думаю ставить или еще подождать. Тут как-то неоднозначно о SP2 отзывались.

Косяк вылазит при разработке. Тоже с формами :)

Косяк повторился. Оказывается лечится просто: Закрыл IDE, открыл и все хорошо. Хотя хорошего мало. Остается надежда что глюк только в IDE, а не в рантайме.

Научился повторять: в коде ошибка, нажимаю Suspend, потом в запустившемся дебагере добавил в Watch выражение для проверки (vartype(tcCaption) у меня в tcCaption NULL оказался), нажал "Cancel" в дебагере, (фокус на окно IDE перешел, дебагер остался запущеным), и после уже до "пробела" или перезапуска IDE не работает. Повторил 4 раза - глюк стабильный.
...
Рейтинг: 0 / 0
29.10.2007, 16:34
    #34902275
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
Dima T...
Научился повторять: в коде ошибка, нажимаю Suspend, потом в запустившемся дебагере добавил в Watch выражение для проверки (vartype(tcCaption) у меня в tcCaption NULL оказался), нажал "Cancel" в дебагере, (фокус на окно IDE перешел, дебагер остался запущеным), и после уже до "пробела" или перезапуска IDE не работает. Повторил 4 раза - глюк стабильный.
Кому не лень, попробуйте повторить. Счас просто времени нет самплесы делать, немножко разгребусь - сделаю и выложу.
...
Рейтинг: 0 / 0
29.10.2007, 16:46
    #34902334
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
авторВсе 50 тыс с SP2? Он только вышел, а как ты так быстро рантайм всем заменил?

у меня ФАП трудится ...

не боис - ставь - кушай и никого не слушай.
...
Рейтинг: 0 / 0
31.10.2007, 01:09
    #34906085
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
А почему бы не прописать в clsForm.Init() код DoDefault() ?
Мне иногда приходится так лечить формы.
...
Рейтинг: 0 / 0
31.10.2007, 01:13
    #34906088
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
Ошибка.
Т.е. я имел в виду форму на основе clsFormEdit где в Init() ничего не прописано.
...
Рейтинг: 0 / 0
31.10.2007, 08:14
    #34906238
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Init() в базовой форме не отрабатывает
DagА почему бы не прописать в clsForm.Init() код DoDefault() ?
Мне иногда приходится так лечить формы.
В смысле продублировать код метода родительского класса в дочернем классе? Так тут все прелести наследования теряются.

PS Вчера пробовал самплес с глюком сделать. Полтора часа убил - не глючит :(
Видать много событий должно произойти чтобы сглючило. Весь проект смысла нет выкладывать, попробую методом чистки проекта оставить только необходимое. Может получится.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Init() в базовой форме не отрабатывает / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]