powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Можно ли очистить форму от "отработанного" мусора?
6 сообщений из 6, страница 1 из 1
Можно ли очистить форму от "отработанного" мусора?
    #32792436
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Есть довольно сложная форма, которую я создавал в несколько заходов, постепенно добавляя "наворотов" и удаляя те, которые не оправдали себя. Форма работает прекрасно, но во время компиляции проекта, в который она включена, постоянно выдавалась ошибка о том, что определенный файл "ххх.jpg" не найден. Причина была в том, что в 2-х контролах этой формы (в их свойстве PICTURE) я когда-то указывал путь на тот самый jpg-файл, который сейчас уже удален за ненадобностью. Проблема заключалась в том, что даже после принудительной очистки свойства PICTURE этих самых контролов, все равно эти файловые ссылки упрямо восстанавливались в этом свойстве при следующем открытии формы на редактирование или при компиляции содержащего ее проекта. Эту проблему удалось решить только чисткой соответствующего поля в нужной записи файла формы, открытого через USE. И вот тут то даже беглого просмотра этого файла оказалось достаточно, чтобы обнаружить в нем еще много такого "мусора", оставшегося после удаления или изменения контролов формы (или их свойств). После удаления этих "излишеств" форма стала работать быстрее. Напрашивается вопрос: а нет ли каких-либо средств для автоматической очистки и удаления таких "остатков" (типа очистки реестра с помощью RegCleaner)? Может, кто сталкивался с таким вопросом, подскажите.
...
Рейтинг: 0 / 0
Можно ли очистить форму от "отработанного" мусора?
    #32792643
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При компиляции проекта всегда устанавливай птичку в пункте "Recompile All Files".

Кроме того, перед созданием EXE сними птичку в Project -> Project Info -> Debug Info. Это существенно уменьшит размер готового EXE-файла
...
Рейтинг: 0 / 0
Можно ли очистить форму от "отработанного" мусора?
    #32792772
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To ВладимирМ:
"Recompile All Files" у меня всегда включено, а до EXE-шников я не дохожу в своих проектах - нет необходимости, заканчиваю все на уровне app-шника, и все работает. Конечно, в этом есть свои минусы, но ... EXE-шники в VFP все равно не самостоятельные... То в обычном Fox'e можно было создавать "standalone" и проблем с переносом поэтому не было.
Но это немного не по теме. Насчет "мусора" в формах. Я тут подумал и пришел к выводу, что очистить форму от него, наверное, можно только вручную. Под "мусором" я понимаю "обнуленные" (но не исчезнувшие после "обнуления") свойства в memo-поле Properties. Например, если я присвоил какое-либо значение свойству Picture у кнопки на форме, то соответствующая информация будет записана FormDesigner'ом в memo-поле Properties scx-файла для записи, идентифицирующей эту самую кнопку на форме. Но: если я затем присваиваю пустое значение этому свойству этой кнопки, то сам пункт Picture уже не исчезнет из вышеуказанного memo-поля Properties scx-файла. Более того, при последующем открытии формы в FormDesigner'е, этот пункт почему-то заполняется ссылкой на мою Default-директорию... Не хочет исчезать, так хоть бы уже пустым оставался!
В общем, для победы над этим порочным явлением я тут наспех набросал кодец, который убирает из memo-поля Properties те пункты, значения которых совпадают с Default. Правда, не со всеми свойствами так можно поступить, но в моих случаях этого пока хватает.
Думаю, тему можно считать закрытой.
...
Рейтинг: 0 / 0
Можно ли очистить форму от "отработанного" мусора?
    #32792790
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajkaEXE-шники в VFP все равно не самостоятельные...
На самом деле, ни один EXE ни одной программы не самостоятельный. Просто в большинстве случаев, тебе явно не указывают, какую именно библиотеку использует та или иная программа. А то, что FoxPro явно требует 2 DLL библиотеки, никак не может считаться недостатком. Исключительно вопрос привычки.

Но это действительно не по теме...

Насчет обнуления свойств Properties. Для этой цели надо щелкнуть правой кнопкой мыши по нужному Properties и выбрать пункт "Reset to Default". Выбранное свойство станет обычным шрифтом (не жирным), что собственно и означает, что ссылка на него удалена из SCX-файла.

Если Properties выделена жирным шрифтом, то это говорит о том, что на нее есть ссылка в SCX-файле. Ведь FoxPro не может отличить введенное тобой пустое значение от введенного, но потом удаленного значения. Для него оба этих варианта означают именно введенное пустое значение.

"Вскрывать" SCX-файлы - это заведомо порочная практика. Лучше пользоваться штатными средствами, а не хакерскими трюками.

PS: Сброс свойства по "Reset at Default" не работает для свойств ActiveX-элментов.
...
Рейтинг: 0 / 0
Можно ли очистить форму от "отработанного" мусора?
    #32793117
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi neznajka!

Тут есть несколько моментов. "Пустое" значение это тоже значение! Например у
меня есть класс кнопки cmd. И там для Caption прописано "Моя кнопка". А
поместив объект этого класса на форму, я решил убрать с неё подпись - и
соответстенно нажал del в поле Caption окна свойств. Я присвоил ему пустое
значение! А если теперь убрать из scx/vcx вообзе строчку Caption = "" - мы
вернёмся к значению "по умолчанию" - которое идёт из родительского класса!

А "получить" правильное значение для Default это ещё та задача :( В общем
случае без создания экземпляра родительского класса для этого конкретного
контрола задача не решается. Да и не факт что в случае когда явно введённое
= Default нужно это убирать - предположим я знаю, что в будущем значение
default изменится (я в классе это предполагаю поменять). - а ты сразу
удалять :(

А насчёт того что не нужно лазить в scx руками - это Владимир не прав :)
Нужно. Но конечно для того нужно ещё и голову на плечах иметь - дабы не
разрушить всё окончательно :)

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Можно ли очистить форму от "отработанного" мусора?
    #32793132
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу не согласиться, насчет scx-ов: я всегда их резервирую перед "вмешательством". А вот насчет "Reset to Default"... Спасибо, ВладимирМ, я ведь читал об этом раньше! Но совершенно выпустил из виду... Век живи, век учись.
To Igor Korolyov:
Вы отмечаете более общий случай Default-значений. Тут, конечно, Вы правы. Да и в любом случае, я если и убираю что-либо из Properties, то не безоглядно.
В общем, спасибо всем, думаю, тема исчерпана.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Можно ли очистить форму от "отработанного" мусора?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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