:: Visual Foxpro, Foxpro for DOS
Исчезает код из Init формы
ry
Автор

Сообщений: 2113
Дата регистрации: 24.09.2007
Надо было сегодня срочно доделать в форме дополнительный функционал. Сделал (пока по-быстрому, на следующей неделе дошлифую), но при работе столкнулся с непонятной для мня ситуацией: код, прописанный в Init формы, пропадает после создания exe. При этом в exe этот код отрабатывает как надо, а вот при последующем открытии формы в дизайнере кода в Init уже нет. Код в остальных элементах формы сохраняется. В параметрах сборки exe включены только Recompile All Files и Display Errors, эти опции использую всегда. Форма создана на основе класса, в классе в Init кода нет, прописываю его именно в форме. При сохранении формы код остается, при билдинге - попадает в exe и исчезает. Это какой-то глюк или я уже плохо соображаю в пятницу?
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Chemberzhy

Сообщений: 13142
Откуда: Измаил
Дата регистрации: 28.04.2009
Глюк.
Надо перекомпилировать форму и сам проект. Уже несколько раз обсуждали тут подобные незадачки, можно попробовать поискать.
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
"Как я понимаю, о мин... FPD тоже не может быть речи?"
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Он лишь "невиден" в визуальном редакторе, или физически отсутствует в поле Methods scx файла (для соответствующей записи)?
Если первое, то такого рода сбои лечит COMPILE FORM ... Если второе - это более серьёзно. Могу лишь предположить что как всегда какой-нить б-гомерзкий Касперский или ДрВеб гадит...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Simple777
"Как я понимаю, о мин... FPD тоже не может быть речи?"
В FPD тоже были scx файлы (пусть и чуть иного толка), и как и в любой таблице нет никаких гарантий её неповреждения при работе. Особенно на ненадёжной системе (сбоящая сеть, г-но АВ и т.п.)


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
ry
Автор

Сообщений: 2113
Дата регистрации: 24.09.2007
По совету Chemberzhy воспользовался поиском (ну лениво было без пинка со стороны) и обнаружил, что проблема не новая: forum.foxclub.ru
На следующей неделе попробую перед созданием exe сначала сделать Rebuild Project и посмотрю, что получится.
Кстати, включенная опция Recompile All Files разве не делает с проблемной формой то же самое, что и Compile Form?
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Делает, но видимо при этом что-то у тебя идёт "не так". От чего и портится форма. В лучшем случае просто смещения в objcode "неправильные" получаются, а само тело методов на месте остаётся. В худшем - сразу в гроб
Вполне возможно что в отрыве от процесса сборки exe, перекомпиляция одиночной формы и нормально пройдёт. Раз уж советуют предварительный rebuild project - который очень похож на поочерёдную перекомпиляцию форм/библиотек/программных файлов, и, насколько я в курсе, отличается таки от сборки exe - по крайней мере для prg модулей отличия точно есть


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Chemberzhy

Сообщений: 13142
Откуда: Измаил
Дата регистрации: 28.04.2009
ry
Recompile All Files разве не делает с проблемной формой то же самое, что и Compile Form?

Опытным путем проверено, что не помогает. Помогает (при хорошей погоде ) только перекомпиляция внутри проекта. То есть, делаем какое нибудь изменение в форме, например ложем на нее CommandButton, делаем незначительные изменения в методе, который "прячется", например: "* убить Билла", компилируем форму, удаляем ненужный объект с формы, в лечимом методе можно ничего не менять, компилируем форму и.., работает. Объект добавлять обязательно, так как он добавляет в таблицу SCX новую запись, что и провоцирует восстановление её из состояния перманентных глюков. Кстати, также проверял, а можно ли вылечить SCX, добавив в таблицу запись вручную- не помогает.



Исправлено 1 раз(а). Последнее : Chemberzhy, 26.01.18 17:15
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
ry
Автор

Сообщений: 2113
Дата регистрации: 24.09.2007
Сегодня с утра, ничего не меняя в проекте, сделал Rebuild Project с опцией Recompile All Files, затем создал exe - все нормально, код остался на месте. Спасибо за помощь!
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
У меня несколько раз было подобное. Поставлю отладку - и уходит.
Т.е. просто заставил метод формы перезаписаться
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
descent52_tmp

Сообщений: 214
Откуда: Саров
Дата регистрации: 20.11.2014
ry
проблема не новая: forum.foxclub.ru
Раз уж тут ссылка на меня была, то я ещё на антивирус тогда грешил- nod32 тогда стоял,
формы портились периодически. Не все и не всегда, но нежданчик ловил раза 4 или 5! Причём, рушилась даже самая главная форма.
После того глюка, сначала все формы перезакрываю, только потом ехе делаю.
Но в память как вшилось, когда на какой либо форме нажимаю Сохранить...
но пока тьфу тьфу тьфу...
И антивирус тот я удалил, ну его лешего...



Исправлено 1 раз(а). Последнее : descent52_tmp, 29.01.18 12:18
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Часто меняю что-то в проекте и:
- проект загнулся - .pjt сдох. Привык, есть копия. Или нет, все равно могу восстановить
Специально, есть включенный в проект Project.prg. В нем ссылки, кот. автоматом не идут, типа "alpha.bmp".
- не работает метод в объекте: форма или класс, как в этой теме
Сразу не поймешь! То, что писал - этот метод надо подправить, чтобы перезаписал.
Сам я всегда это по-жизни не ожидаю и ставлю, типа своего Messagebox для отладки.
Вдруг, заработало молча. Убрал, назад как было, - все хорошо, проблема ушла!

Это какая-то порча, к кот. я приспособился. Она редко возникает и сразу забывается, т.к. уже все пляшет.
Ну, раз в пол года - год.
Наверно, я чаще других гоняю Modify Project.
Memo-поля у Фокса - ахиллесова пята.
Я могу гарантировать, что одновременно с кем-то в одно время не собирал проект. У нас просто таких нет.
IMHO, какая-то проблема Фокса с порчей fpt, здесь pjt.
Или у проекта Фокса еще есть своя ахиллесова пята, кот. тут описана



Исправлено 3 раз(а). Последнее : Ydin, 29.01.18 19:50
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
FPD forever!..
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Да точно такая же хрень в FPD с мемо-полями. Их и там старались по возможности не использовать.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Я в проектах их ни разу не использовал. Можно в конце концов и завести парочку-тройку символьных полей максимального размера. В основной таблице наименование, допустим, 150 символов. Если лимит превышен, то в дополнительной таблице при необходимости размещается наименование со 151 позиции и далее. Выполнять выборки и всякого рода поиски по наименованию (допустим, по фильтру AT()) вполне возможно из двух таких таблиц. Такая реализация у меня в проектах есть, и никаких проблем с этим не было ни по скорости, ни ещё по чему-либо. [sm128]



Исправлено 1 раз(а). Последнее : Simple777, 29.01.18 22:49
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Вообще, подобных глюков в фоксе не мало(
У меня достаточно регулярно, получаю какую то форму, на основе своих классов, и на ней свои контролы.
Которые вызывают другие объекты.
Все давно отлажено, и пашет как часы.
Но вдруг начинается, форма не закрывается, висит.
Явно какой то объект не уничтожен.
И тратишь кучу времени, на поиски и разбор.
А потом вдруг само пропадает.
И главное. Что радует. В ехе этих глюков нет, тока при отладке. (ну так все равно мешает)


------------------
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Аспид
В ехе этих глюков нет, тока при отладке. (ну так все равно мешает)

Зато наверняка в exe бывает много чего такого, чего не бывает при отладке. Мда... Ввод букаф и циферь юзером посредством GUI - "это вам таки не на Привозе". Это еще покруче вырывания гланд через анус будет.
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Божья_коровка

Сообщений: 25731
Дата регистрации: 23.08.2001
Simple777
Можно в конце концов и завести парочку-тройку символьных полей максимального размера. В основной таблице наименование, допустим, 150 символов. Если лимит превышен, то в дополнительной таблице при необходимости размещается наименование со 151 позиции и далее.
Встречала я такое наследие в 3х вариантах исполненное, и когда длинное наименование дробилось на поля но в одной таблице, и когда оно дробилось по двум таблицам, в одной таблице начало во второй продолжение и когда всё в одной таблице но реализовано было несколькими записями, т.е. первая запись - начало наименования, за ней вторая запись с теми же параметрами и продолжением наименования....Не вижу ничего приятного в таких реализациях Восторг тов. Симпле777 по поводу FPD не разделяю но уважаю


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 1 раз(а). Последнее : Божья_коровка, 30.01.18 08:39
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
of63

Сообщений: 25240
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
...А почему Memo не использовано? Чтобы можно было индексировать по полю C(150) и искать?...
...Или, например, заменить поле C(150) на ID (число), ID указывает на запись вспомогательной таблички {ID, Memo} с наименованием любой длины. Тогда найдем в вспомогательной табличке нужное наименование, его ID, ищем это ID в "основной" табличке...
Ratings: 0 negative/0 positive
Re: Исчезает код из Init формы
Божья_коровка

Сообщений: 25731
Дата регистрации: 23.08.2001
of63
А почему Memo не использовано?
ИК же написал -
Цитата:
Да точно такая же хрень в FPD с мемо-полями. Их и там старались по возможности не использовать.

На что, Симпле ответил -

Цитата:
Я в проектах их ни разу не использовал. Можно в конце концов и завести парочку-тройку символьных полей максимального размера. В основной таблице наименование, допустим, 150 символов. Если лимит превышен, то в дополнительной таблице при необходимости размещается наименование со 151 позиции и далее.

А я лишь поделилась подобными вариантами реализации наследие которых я застала в рабочих проектах...;) Кстати 3й вариант я застала в приложении у которого БД была Оракловая, на вопрос - что за хрень? Получила ответ - это не хрень, а так работало в досовском приложении когда то и при переводе на новые "рельсы" эта штука осталась, её не переделывали. Там была огромная таблица справочник с длинными наименованиями, в котором как раз по записям разбивка была -

ID Name
1 наименование
1 продолжение наименования
1 еще продолжение
1 еще продолжение


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 1 раз(а). Последнее : Божья_коровка, 30.01.18 09:52
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 23 (Гостей: 23)

© 2000-2024 Fox Club 
Яндекс.Метрика