Скрийнсейвър
Консолидиране на покрития материал на практика, изучаване на компонента TTimer и функцията генератор на случайни числа Random () .
Формулиране на проблема
От време на време, за да консолидираме предадения материал, ще извършваме лабораторни работи - реални софтуерни проекти с различна сложност. Този път ще направим скрийнсейвър под формата на електронен часовник. Проектът се разработва на платформата Windows XP SP3, но на други версии на Windows също трябва да работи.
На първо място, скрийнсейвърът заема целия екран, няма системна лента, главно меню и рамка на основния прозорец. И като правило на скрийнсейвъра има само един прозорец. Друга разлика е, че файлът на скрийнсейвъра има разширението * .scr (от английски. екран - екран) и не * .exe, като програма. Скрийнсейвърът обаче е същата програма .
Нека помислим как можем да приложим такъв скрийнсейвър под формата на часовник. Отговорът предполага сам: задайте редовен панел в центъра на екрана, върху който трябва да се показва текущото време в свойството Caption. Това обаче е скучно. Нека този панел също се движи по екрана по произволен път! За да реализираме такъв проект, ще трябва да научим няколко неща: системния таймер TTimer и функцията за генериране на случайни числа Random () .
Изпълнение на проекта
Всъщност първото нещо, което трябва да направите, е да разработите програмен алгоритъм.
Но нашият проект е съвсем прост, така че няма алгоритъм като такъв. Нека започнем проекта, ако е необходимо, като разработим алгоритъм за по-нататъшни действия по пътя. Открийте Лазаров ден с нов проект, незабавно преименувайте свойството Name на основния формуляр на fMain. Запазете проекта в папка 11-01 под името MyClock, и назовете основния модул на формуляра Main .
Сега да стигнем до прозореца. Тъй като прозорецът за изпръскване не трябва да има системна линия, задайте свойството BorderStyle на bsNone. И тъй като този прозорец трябва да заема целия екран, ние ще преобразуваме свойството WindowState в wsMaximized. Задайте свойството Color на clBlack, за да направите формата черна. И още нещо: ще преобразуваме свойството на формуляра Cursor в crNone, така че показалецът на мишката да не се вижда в текущия начален екран (защо е там?).
Да вървим по-нататък. Задайте етикета TLabel във формуляра. Не обръщайте внимание, че на черен фон все още не се вижда във формуляра. Нека променим някои от неговите свойства:
- Име = lClock (по този начин ще се позоваваме на етикета в програмния код; l - съкращение на label - етикет, Clock - часовник)
- Надпис = 00:00:00
- Шрифт = Times New Roman, Bold Italic, 48px. Цветът на шрифта изберете жълт.
- ParentColor = Вярно (това ще направи етикета винаги съчетан с формата, а цветът на шрифта ще контрастира с общия фон)
Ако сте забравили как да настроите свойствата на шрифта, нека ви напомня: трябва да изберете свойството Font, след това щракнете върху бутона с три точки от дясната страна на свойството, в Инспектор на обекти:
Ще се отвори прозорец, където можете да изберете шрифта, стила, размера и цвета на шрифта. Можете да изберете свои собствени цветове за шрифта и панела, най-важното е те да контрастират помежду си и да се съчетават добре с черния цвят на формата, който ще зададем по-късно.
В резултат на извършените действия трябва да получите нещо като следния прозорец:

Не се притеснявайте от факта, че прозорецът все още е малък, но системната линия и рамките на прозорците са налице - когато програмата работи, прозорецът ще заема целия екран, ако не сте се забъркали с параметрите на формата.
Компонент TTimer
Таймерът дойде. Нуждаем се от него, за да сменим етикета - да покажем текущото време. Освен това, благодарение на този компонент, ще можем да осигурим на марката непрекъснато движение.
TTimer е в раздела Палитри на системни компоненти:
Този компонент невизуални - невидим за потребителя, така че може да бъде инсталиран навсякъде във формуляра, стига да не ви пречи при проектирането на формуляра, да не припокрива други компоненти. Компонентът ще бъде видим за вас, въпреки черния цвят на формуляра.
Компонентът има само едно свойство и едно събитие, от които може да се нуждаем:
Интервал - Това свойство задава интервала от време, когато таймерът ще се задейства. По подразбиране е 1000, което съответства на 1 секунда. Това е, от което се нуждаем, така че ще оставим стойността на имота непроменена. И за в бъдеще не забравяйте: ако трябва да зададете различно време, умножете необходимия брой секунди по 1000 и ще получите това, от което се нуждаете.