ПредишенСледващото

Обявата 9.1. Кодът на проекта:

MainUnit в "MainUnit.pas1; започвам

Application.Initialize; Application.CreateForm (TFormi, Forml); Application.Run; край.

Всичко това не е нищо повече от съдържанието на SplashProject.dpr на файла. Първият ред трябва SplashProject името програма програма. В този ред, не може да промени нищо, защото името на файла трябва да съвпада с името на програмата, написана тук. Това е последвано от познати раздел цели, които могат да бъдат свързани към необходимите модули. Ние свързан Формуляри модули (ви позволява да работите с форми) и mainunit (модул главния прозорец). Ако програмата ви няколко прозорци, всички те са автоматично предписано в раздел използва клауза тук, защото в този файл описва инициализацията на прозорците, и той трябва да знае за съществуването на други прозорци в програмата. Ако някой прозорец не означава автоматично инициализира, то е само в този случай, можете да премахнете модула от този прозорец връзка използва клауза, в противен случай се появи грешка по време на компилация.

Между края започне и се провежда три линии.

Application.initialize - започва инициализация на приложението. Чисто не се препоръчва.

Application.CreateForm (TForm1, Form1) -Метод CreateForm инициализира формата. Тя има два параметъра - име на обект и името на променливата, която по-късно ще сочи към новосъздадения обект. В нашия случай това е името на форма TForm1 и име на променлива Form1 на. Променлива Form1 автоматично описано в TForm1 обект модул (в този случай, модулът

MainUnit .pas) под Var:

Application.Run - след инициализация на всички форми можете да стартирате програмата с помощта на метод Run Application обект.

Там винаги се използва обект за кандидатстване. Този обект е винаги там, в програмите си в един екземпляр и е създаден с помощта на Application.initialize линия. С тази цел, ние ще се въведе постепенно в цялата книга, а сега това е достатъчно, за да се знае, че тя идва от TAppiication клас и изпълнява основните функции за управление на приложения.

Сега се създаде нова форма, като изберете File | Нова | Форма. и да го запишете като spiashunit.pas. Отново, погледнете изходния код на проекта, трябва да се както е показано на Обява 9.2.

програма SplashProject; употреби

MainUnit в "MainUnit.pas, SplashUnit в" SplashUnit.pas 1;

Application.Initialize; Application.CreateForm (TForml, Forml); Application.CreateForm (TForm2, ФОРМА2); Application.Run; край.

Сега отидете в свойствата на проекта (от менюто Project (проект), което трябва да изберете опцията (Настройки)). В раздела форми (Form) в списъка за автоматично създаване на форми (Avtosozdavaemye форма) описахме две форми. Маркирайте ФОРМА2 (тази втора форма ние току-що създадената) и да го преместите в списъка с наличните форми (налични форми). Затворете прозореца Properties с бутон ОК и погледнете в изходния код на проекта. Може да забележите, че низ за инициализация на втората форма е изчезнала. Това е така, защото ние се движим от списъка на автоматично създаване на списък с наличните форми. Това означава, че нашата форма е достъпно в проекта, но не се създава автоматично при стартиране на програмата. По този начин, за да използвате ФОРМА2, първо трябва да го създадете.

За по-нататъшно по-лесно да се работи, преименувате основната форма в MainForm Forml, а вторият под формата ФОРМА2 spiashForm. Така че ние няма да бъдат объркани, когато е основната форма, а когато форма спасителя. Разположен в дома бутон за формата и се притиска, напиши следния код:

процедура TMainForm.ButtonlClick (подателя: TObj др); започвам

Тук, в първия ред на кода, който се инициализира форма SplashForm. През втората - да се създаде да се изведе прозорец. И на последния ред е унищожение от Windows Free.

Но има и друг начин за създаване на прозорци, които използвахме, и е за предпочитане. Напишете следния код:

процедура TMainForm.ButtonlClick (Sender: TObject);

SplashForm: = TSplashForm. Създаване (Собственик);

Там се присвоява на променливата резултат SplashForm обажда създаде TSpiashForm обект. Този метод трябва да премине само един параметър - собственик на прозореца. Ако собственикът не е налице, можете да прехвърляте нулева стойност (нула стойност показва отсъствие на собственика). В нашия случай се прехвърля на собственика - имот, който съхранява указател към текущия прозорец. Ако главния прозорец не трябва да бъде на текущия прозорец, трябва да укажете името на обекта - Form1.owner.

Нека да се гарантира, че нашият прозорец SplashForm да се появяват на времето за зареждане на програма. Такъв прозорец, което виждате, когато стартирате програми като Delphj. Word. Excel и други приложения. За да направите това, отидете до изходния код и промяна на проекта, така че да съвпада с кода, показан на Обява 9.3.

Заявление. CreateForm (TMainForm, MainForm);

Помислете за този код, ред по ред.

  1. Създаден прозорец spiashForm. Този прозорец няма да е собственик, защото показва още преди да са създали основния прозорец. Ето защо, като параметър на метода на създаване на което сочи към нула.
  2. Посочете прозореца на екрана не е модален прозорец, за да се покаже, и прилагането продължава да се изпълнява.
  3. Преначертаване на прозореца, като се обадите на метода се пребоядиса.
  4. Инициализация на приложения.
  5. Създава основна форма TMainForm.
  6. Осъществяване забавянето на прозорец SpiashForm можеше дори малко "замразяване" на екрана. За да направите това, ние използваме процеса на сън, и като параметър да се уточни времето на забавяне в милисекунди. Една секунда е равен на 1000 милисекунди. За да използвате тази функция в клаузата за употреба трябва да добавите модул
  7. Windows.
  8. Скриване на формуляр SpiashForm наричайки се скрие.
  9. Унищожи кутията.
  10. Стартирайте приложението.

Стартирайте програмата и ще видите първия прозорец SpiashForm (тя е поставена TLabel текст, който казва, че "Зареждане"), а след това ще се появи главния прозорец.

TIP. Когато прозорците са създадени (наречена CreateForm), програмата се изпълнява със събития, за oncreate всички нови форми. Ако заявлението е твърде голям и експлоатацията на тези манипулатори се изпълняват за дълго време, че е желателно да се показва информация за хода на тези операции в прозорец SpiashForm. В този случай, първото нещо, което той създава през прозореца и се показва на екрана. Потребителят вижда, че товаренето и тихо очакване за нейното изпълнение.

Когато инициализира форма, а след това в този момент той се нарича конструктор. Ако проекта 20 дизайнерски форми и всеки от тях изпълнява някаква операция на дълъг период от време, това създава впечатление, че програмата увисва. Или трябва да се оптимизира кода, за да се подобри скоростта на зареждане на програмата, или да информира потребителя, че програмата не може да виси и натоварване.

Ако не информира за хода на изтеглянето, и на екрана няма да направи нищо, за да се покаже, потребителят може да смятате, че окачени програмата, и се опитайте да го стартирате отново. Това от своя страна може да доведе до разпадането на целия процес на компютри. Например, като се опитва да започне два пъти една програма, която работи с COM порт. В този случай, вторият екземпляр няма да може (само веднъж е възможно да се отвори COM порт), за да се отвори порт. Затова е по-добре отново да се създаде покаже прозорец с прогрес за сваляне, отколкото да слушам потребителското недоволство от работата на вашата програма.

Как мога да увелича скоростта му? Веднага моли следните опции.

Инициализиране само основни форми. Много добра идея. Не е необходимо да се инициализира 150 форми, когато в действителност няма да се използва не повече от 10, а другият ще се нарича, и ако това е много рядко. Тази излишна загуба на време разходите за товарене и съхранение по време на работа. Нека ви автоматично създаване само необходимите формуляри. Извършване на всички операции в събитието манипулатор Onshow. Най-логичното решение, защото, когато формата за инициализация се нарича дизайнер и боравене със събития oncreate, така че ако тези методи ще се извършва бързо и да изтеглите програмата, за да се ускори. Но ако се движите на кода на манипулатора onshow събития, няма да има забавяне при показване на прозореца, а на всеки дисплей. Можете да управлявате да се провери и да OnShow, ако инициализация вече е било, тогава пропуснете кода и просто се покаже прозорец.

Вторият вариант не е лошо, но не забравяйте, че MDI прозорци виждат незабавно, така че ако те AutoCreate списък, а след това по време на зареждане на такива прозорци програма, както се нарича конструктор, и прозореца на дисплея, т.е.. Д. и манипулатор OnShow.

Formstyle на fsMDichild, видимата Имотът е също автоматично се превръща в истина.

Помислете за това нюанс. Ако случайно направите прозореца едно дете, а след това се прехвърли към fsNormai, след стартирането на прозореца веднага се показва на екрана (ако формулярът се създава автоматично в списъка), защото вижда имота остава равен истина.

Помогнете на проекта! Кажи на приятел за този сайт:

Подкрепете проекта - споделете линка, благодаря!