Доброе время суток, уважаемые эксперты. Поскажите, пожалуйста, как создавать/уничтожать глобальные переменные. В каком месте модуля нужно объявить динамический массив, чтобы он был доступен всеп процедурам данного модуля, и где его удалять. Или при выходе из программы Винда сама уго удалит? Заранее благодарен Vitally.
Добрый день, Vitally! Глобальные переменные объявляются в частях: protected, private, public - по степени доступности. Исходя из этого - определить массив в любой из частей, только в случае с public массивом можно пользоваться и из других модулей. При выходе из приложения, действительно, все переменные "освобождаються". Ответ отправлен: 21.09.2002, 07:16 Отправитель: Idle Sign Отвечает Jadd
Доброе время суток, Vitally! Значит ситуация такая. Глобальные переменные доступны ВСЕМ процедурам модуля по определению. Если интересует ООП, то глобальными выступают переменные, объявленные вне классов. Они доступны в любом месте программы (в других модулях надо включить соответствующий модуль в раздел uses). Динамический массив: лучше, если речь про ООП, создавать такой массив в конструкторе, а удалять в деструкторе. Если не про ООП - напиши процу, которая будет убирать весь мусор за тобой. Дельфи и правда может все сама делать, но я бы не очень этому доверял и делал бы все сам . Ответ отправлен: 23.09.2002, 14:07 Отправитель: Jadd Отвечает Pablo
Доброе время суток, Vitally! Глобальные переменные объявляются в самом начале перед всеми функциями, но в приложениях Дельфи их лучше не использовать, в относительно глобальные переменные можно исползовать в главной форме, там же можно использовать и динамические массивы. Динамические массивы могут быть созданы в конструкторе формы, а уничтожены в деструкторе формы. В принципе Винда сама его удалит при завершении работы процесса, но по хорошему лучше его уничтожать при уничтожении формы. Ответ отправлен: 24.09.2002, 20:42 Отправитель: Pablo
Вопрос № 192
Здравствуйте! У меня тут такой вопрос Делаю прогу, там использую только текст, несколько форм, и пару сторонних компоненов типа URLLabel и др. Размер получается около 400kb, хотя ничего навороченного там нету. Подскажите пожалуйста, как можно размер уменьшить? Спасибо!
Приветствую Вас, BlackCat! 1) Компилировать пакеты Runtime отдельно (Project - Options... - Packages - Runtime Packages - поставить галочку на Build with Runtime Packages). Противопоказание: хоть размер и станет мизерным, однако программа не будет работать, если в системе пользователя не стоят эти самые пакеты, откомпиленные отдельно. 2) Использовать только функции Windows API. Противопоказание: неудобно (хотя... кому как) 3) Сжимать откомпиленный файл чем нибудь на подобие UPX (http://upx.sourceforge.net) или ASPack. Противопоказания: если правильно сжимать - никаких. 4) Удалить необязательное содержимое exe с помощью StripReloc (http://www.jrsoftware.org, http://www.jordanr.cjb.net). Противопоказание: уменьшает размер ненамного. 5) Убрать лишнее из uses. Потивопоказание: мало эффективно, оттого что лишнего там как правило не бывает. Ответ отправлен: 21.09.2002, 17:19 Отправитель: Idle Sign Отвечает Jadd
Здравствуйте, BlackCat! Иди в пункт Project->Options и вырубай ненужные packajes . Сильно уменьшит твою прогу в размере. Можно еще поставить галку (!) в пункте Build with runtime packajes. Плюс убирай всю Debug info. Можно оптимизацию включить. Ответ отправлен: 23.09.2002, 13:45 Отправитель: Jadd Отвечает Pablo
Добрый день, BlackCat! В Дельфах и Билдере действительно очень много места занимает реализация основополагающих компонентов таких как TObject, TPersistet и TComponent, ну и их наследников управляющих окнами. Если ты хочешь чтобы умешьшился объем, то тебе нужно отключить в Дульфях или Билдере опцию, которая позволяет внедрять код жтих компонт в твою программу, в этом случает объем сильно уменьшится, но есть одно "но". Программ перестанет работатьь там, где не установлен Дельфи, Билдер или их классы, так как компилято не внедрит из в твою программу, а скомпонует программу так, что все необходимые вызовы этих классов будут производиться из внешних библиотек BPL и DLL. Ответ отправлен: 24.09.2002, 20:04 Отправитель: Pablo
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.