Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на Delphi

Выпуск № 077
от 25.09.2002, 07:10

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 196
Отправлено ответов: 321
Активность: 163.7 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Idle Sign
Статус: Начальный
Общий рейтинг: 136.36
[Подробней >>]
Jadd
Статус: Опытный
Общий рейтинг: 156.02
[Подробней >>]
Pablo
Статус: Профессиональный
Общий рейтинг: 130.98
URL: Моя страничка
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 191. Доброе время суток, уважаемые эксперты. Поскажите, пожалуйста, как создавать/уничтожать глобальные п... (ответов: 3)
Вопрос № 192. Здравствуйте! У меня тут такой вопрос Делаю прогу, там использую только текст, несколько форм, и пар... (ответов: 3)

Вопросов: 2, ответов: 6


 Вопрос № 191

Доброе время суток, уважаемые эксперты.
Поскажите, пожалуйста, как создавать/уничтожать глобальные переменные. В каком месте модуля нужно объявить динамический массив, чтобы он был доступен всеп процедурам данного модуля, и где его удалять. Или при выходе из программы Винда сама уго удалит?
Заранее благодарен
Vitally.



Вопрос отправлен: 21.09.2002, 06:43
Отправитель: Vitally

[Следующий вопрос >>] [Список вопросов]

Отвечает Idle Sign

Добрый день, 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, хотя ничего навороченного там нету.
Подскажите пожалуйста, как можно размер уменьшить?
Спасибо!



Вопрос отправлен: 21.09.2002, 13:27
Отправитель: BlackCat

[Следующий вопрос >>] [Список вопросов]

Отвечает Idle Sign

Приветствую Вас, 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.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (41)
C / C++ (29)
Perl (7)
Delphi (15)
Pascal (24)
Basic / VBA (12)
Java / JavaScript (10)
PHP (7)
MySQL / MSSQL (9)
Пользователю
Windows 95/98/Me (39)
Windows NT/2000/XP (31)
"Железо" (37)
Поиск информации (14)
Администратору
Windows NT/2000/XP (17)
Linux / Unix (17)
Юристу
Гражданское право (10)
Семейное право (4)
Трудовое право (6)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное