|
|
|
||||||||||||
|
|
Собственный, легко управляемый и профессионально разработанный сайт – необходимый элемент любого бизнеса. Находитесь ли Вы в командировке, в дороге, дома или на отдыхе имея компьютер, подключенный к сети Internet, Вы получаете доступ к управлению Вашим сайтом! |
|||
Уменьшаем размер EXE в 40 раз, или Вся правда о консольных приложениях DelphiСтатьи → Программирование на Delphi"Пустая" форма весит около 355 КБ, и этот начальный размер увеличивается с каждой новой версией Delphi. "Пустая" программа, написанная с использованием библиотеки KOL, уменьшающей размер исполняемого файла, - 32 КБ. "Чистое" консольное приложение имеет размер 8 КБ, поскольку отображается как процесс и, соответственно, не имеет сложных взаимодействий с Windows-окнами. То есть можно сделать так, чтобы по Ctrl+Alt+Del консоль не было видно :). Итак, в меню Delphi выберите File>New>Other и в появившемся окне среди прочего найдите пункт Console Application. Возникнет следующая заготовка: program Project1; //название проекта {$APPTYPE CONSOLE} //директива, указывающая на наличие консоли uses SysUtils; //подключенные модули begin //начало процесса Ага. Это "пустое" консольное приложение. Нажмите F9, чтобы запустить его. Что вы увидели? Черное окошко вроде Сеанса MS-DOS возникло и сразу исчезло. Куда оно делось? Всё дело в том, что консольное приложение - это процесс, который, как и всё на свете, когда-нибудь закончится :). Начало процесса - ключевое слово begin, а конец - end. Поскольку между ними отсутствуют какие-либо другие команды, то end (прекращение процесса) исполняется сразу после начала, и консоль исчезает. Чтобы такого не было, надо "занять" приложение каким-нибудь циклом, желательно вечным ;). Вот так: begin Обратите внимание на команду until. Наш цикл будет исполнятся до тех пор, пока 1 не станет равен 0. Угадайте сами, когда это случится :). Другой вариант: begin И еще вариант: Label MyLabel; //"метка" begin В общем, вариантов сколько угодно. Главное, что консоль не будет закрываться. А теперь надо реализовать чтение и запись на полотно консоли, как это сделано в (не)старом (не)добром MS-DOS. Помогут нам в этом процедуры из модуля System.pas. Синтаксис: WriteLn(ЧТО_ЗАПИСЫВАЕМ) //вывод данных в консоль WriteLn('Hello World!'); Соответствующая строка ("Hello World!") будет выведена на консоль. Если эта команда будет помещена в вечный цикл (как его создать - см. выше), то строка "Hello World!" тоже будет добавляться бесконечное число раз. Чтобы это исправить, нужно написать: Begin var S: String; //наша переменная begin var s: String; begin Вот так. Сюда можно вставить какой угодно код, только подключив, если требуется, необходимые модули. Теперь еще раз откомпилируйте проект и нажмите Project>Information for 'ProjectName'. Размер EXE будет около 40 килобайт, но только потому, что модуль SysUtils.pas в разделе Uses весит так много. А если вы замените этот модуль на Windows.pas, то программа будет занимать, как я и обещал, ВОСЕМЬ :) кило на вашем харде :). Конечно, при условии, что вы будете пользоваться только модулем Windows, который содержит большинство команд, необходимых в повседневности. Если вы не собираетесь вступать в консольные переговоры с юзером и пользоваться процедурами WriteLn и ReadLn, то и консоль не нужна. Удалите директиву {$APPTYPE CONSOLE}, чтобы черное MS-DOS'овское окошко не появлялось. program Project1; {$APPTYPE CONSOLE} uses Windows; var Вот и всё. Как собрать что-нибудь посерьезнее, чем обхаянное крутыми программистами приложение типа "Hello World", мы расскажем вам в следующей серии. Источник: http://delphid.dax.ru 16.02.2006 |
VSESMI.ru — новости в СМИ.
Tur-Hotel.ru — отзывы об отелях
|
|
Copyright © 2002—2012 ООО "Хостмэйк" Телефон в Москве: +7 (495) 223-46-50 Телефон в Санкт-Петербурге: +7 (812) 448-38-90 Тел./Факс: +7 (8636) 237-836 E-mail: 2006 |