Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Инициализируем растры TBitmap, в которых будут хранится



// фон и сам рисунок часов. FBGBitmap:= TBitmap.Create; FFont:=TFont.Create;;

FBitmap:= TBitmap.Create; FBitmap.Width:= Width; FBitmap.Height:= Height;


// Выставляем формат времени
DateFormat:='tt';

// Запускаем таймер Ticker:= TTimer.Create(Self); // Интервал работы таймера -одна секунда Ticker.Interval:= 1000; // По событию OnTimer будет вызыватсья процедура TickerCall Ticker.OnTimer:= TickerCall; // Включаем таймер Ticker.Enabled:= true;

// Устанавливаем цвета поумолчанию FFaceColor:= clBtnFace; FHourArrowColor:= clActiveCaption; FMinArrowColor:= clActiveCaption; FSecArrowColor:= clActiveCaption;

end;

Ключевое слово inherited вызывает конструктор предка (в нашем случае TGraphicClock). Это необходимо, потому что предок тоже может делать что-то важное в конструкторе и если мы не вызовем его конструктор, то могут возникнуть проблемы.

В остальном, я надеюсь, что с конструктором всё ясно. Дальше идёт инициализация переменных. Я постарался снабдить код подробными комментариями, чтобы ты смог разобраться с происходящим. Сами переменные мы пока не добавили и я их буду описывать постепенно.

Теперь создадим деструктор. Для этого также опишем его в разделе public:

public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override;

Деструктор тоже объявляется как простая процедура, но здесь стоит ключевое слово destructor. Теперь жмём Ctrl+Shift+C и получаем заготовку для деструктора и поправляем её до вида:

destructor TGraphicClock.Destroy;

begin Ticker.Free; FBitmap.Free; FBGBitmap.Free; inherited Destroy;

end;

Здесь я освобождаю всю память выделенную для хранения картинок и объекта TTimer в конструкторе. Заметь, что в конструкторе я вызывал предка в самом начале inherited, а в деструкторе в самом конце. В конструкторе сначала нужно, чтобы инициализировался предок (он проинициализирует необходимые ссылки), а потом можно инициализировать свои вещи. В деструкторе всё наоборот – сначала уничтожает мы, а потом предок. Если в деструкторе мы сначала вызовем предка, то последующая работа с компонентом уже может быть невозможна, потому что предок уничтожит все ссылки. Поэтому я ставлю этот вызов в самом конце.

Теперь опишем все необходимые нам переменные в разделе private:





Дата публикования: 2014-11-04; Прочитано: 323 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2025 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...