Показ логотипа при запуске приложения 2

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Автор: Howard Harkness

Юзер — это человек, который иногда наступает на грабли.

Чайник — это человек, который всегда наступает на грабли.

Ламер — это человек, который считает, что не наступает на грабли, но на самом деле наступает на них чаще, чем чайник.

Программист — это человек, который изобретает новые грабли.

Билл Гейтс — некое мифическое существо, покровителей граблей.

МикроСофт — завод по производству граблей.

Ассемблер — язык программирования, в котором программист наступает на грабли миллион раз в секунду.

Мне также понадобился логотип для одного из моих клиентов, поэтому я загрузил файл из публичной библиотеки и включил в свое приложение модуль, позволяющий выводить логотип при загрузке программы. В этом модуле было около 150 строк кода, но у меня свое понятие относительно количества необходимого для этого дела кода, поэтому я просто удалил лишнее, для которого просто не нашел применения.

После моего хирургического вмешательства осталось всего пять или шесть строк кода, вплетенных в скелет формы. После сравнения моего кода с демо-проектом, поставляемым с Delphi (MastApp), я понял, что мой код много проще.

Я не хочу обвинять автора в том, что он плохо сделал свою работу. Без его помощи этого кода просто бы не существовало. Я нахожу, что изучение чужого кода всегда существенно расширяет и дополняет багаж программиста.

Код производит впечатление, что создание окошка с логотипом в Delphi плевое дело. Ну за дело: сначала, с помощью редактора, создайте форму (лучшим решением будет создание нового проекта в отдельном каталоге) и установите лучшие, на ваш художественный взгляд, значения таких свойств, как позиция, размеры и границы. Затем создайте обработчик события OnDeactivate и добавьте единственную строчку кода, в которой мы освобождаем форму. И, последнее, добавьте секцию initialization с тремя строчками кода, которые создают, выводят и обновляют форму.

Для того, чтобы использовать новое окошко с логотипом, скопируйте получившийся .PAS-файл в каталог с проектом, в котором вы намереваетесь его использовать, и вставьте ссылку на модуль в самую верхнюю часть секции uses. НЕ добавляйте форму к проекту.

Ниже приведен пример кода (форма имеет имя SplashForm, модуль обозван как SPLASH). Мой код добавлен между закомментаренных блоков {>>вставить} и {<<конец вставки}, весь остальной код генерируется Delphi.

type

TSplashForm = class(TForm)

[…labels, bitmaps, и пр., добавляется редактором Delphi…]

procedure FormDeactivate(Sender: TObject);

end;

var

SplashForm: TSplashForm;

implementation

{$R *.DFM}

{ Это шаманское место. Application.Run в нашем случае

вызывает программу деактивации.}

procedure TSplashForm.FormDeactivate(Sender: TObject);

begin

{>>вставить}

Free;

{<<конец вставки}

end;

{>>вставить}

initialization

begin

SplashForm := TSplashForm.Create(nil);

SplashForm.Show;

{ Я не уверен, но причина наличия здесь Update в том,

что, как мне кажется, приложение пока не может работать

c очередью своих сообщений}

SplashForm.Update;

end;

{<<конец вставки}

end.

В головном модуле после строчки USES (.DPR-файл) просто добавьте «SPLASH,» (не заключайте это в кавычки). Это все. Никакой головной боли с таймерами, никаких запусков отдельных приложений. Логотип быстро появляется и остается до тех пор, пока приложение не начнет свою работу.

{/codecitation}

Добавить комментарий