Шупрута В.В. - Delphi 2005 - Учимся программировать (1080891), страница 43
Текст из файла (страница 43)
Процедура обработки события C r e a t e для формы загружает анимацию и инициализирует указатель на процедуру,обеспечивающую отображение оче• - Данный пример демонстрирует - редного кадра анимации. Процесс;\ '. загрузку и отображение'.','.• - а»*(гл-чх)&аинын файлов GIF.воспроизведения анимации активи• * Д Л Я начала гросмсггра нажь^ге .' 1'* - кнопку "Анимация"зирует процедура обработки события C l i c k на командной кнопке1 * * * * * *.
* * [' *Аиимиашя •• -. I .* ',B u t t o n l путем вызова метода Animate. В качестве параметров методауказываются битовый образ и ссылкаРис. 6.12 т Форма окна программы,на процедуру, обеспечивающую отобдемонстрирующей пример использованияражение кадра анимации.объекта ImageAnimator• • • ••••ГЛАВА 6 • Изучаем основы работы с графикой в .МЕТВ тот момент, когда необходимо вывести очередной кадр анимации, объектImageAnimate вызывает процедуру, ссылка на которую была указана в методе Animate (в данном случае - на процедуру FrameChanged).
ПроцедураFrameChanged в свою очередь с помощью метода I n v a l i d a t e инициализирует процедуру обработки события P a i n t , которая обеспечивает вывод текущего кадра анимации и подготовку следующего кадра. Останавливаетсяпроцесс анимации с помощью метода StopAnimate.Изучаем основныекомпоненты припрограммированиидля Win32Вэтой главе приведено описание основных компонентов, которые используются для создания программ на платформе Win32.
Как и в главе 5, здесь будут приводиться примеры программ, в которых используется сразу несколько компонентов. При этом основное внимание уделяется компоненту, название которого вынесено в заголовок раздела. В'таблицах приводятсяосновные свойства, отражающие специфику компонента и представляющие дляначинающего программиста наибольший интерес. Подробную информацию окомпонентах можно найти в справочной системе.Основные компоненты располагаются на вкладках Standard и Additionalокна Tool Palette. Некоторые полезные компоненты располагаются на другихвкладках - в этом случае я буду указывать дополнительно их местоположение.Часть компонентов нам уже знакома по первому проекту - они кратко будутрассмотрены вначале, на незнакомых компонентах мы остановимся более подробно.Прежде чем мы перейдем к рассмотрению основных компонентов, обратите внимание на табл.
7.1. В этой таблице перечислены все рассмотренные вглаве 5 компоненты (.NET), а также приведены их аналоги (Win32), выполняющие по сути те же действия, но имеющие отличия в реализации.Таблица 7 . 1 т Компоненты .NET и их аналоги в Win32Компонент .NETКомпонент Win32ОписаниеLabelTextBoxTLabelTEditКомпонент отображения текстовой информацииКомпонент для ввода информации (текстовой, числовойи т.д.)ГЛАВА 7 • Основные компоненты при программировании для Win32Таблица 7.1 тКомпоненты .NET и их аналоги в Win32 (окончание)Компонент .NETКомпонент Win32 ОписаниеButtonTButtonImageListTImageListКомпонент-контейнер для хранения коллекции картинокToolTip-Вспомогательный компонент, всплывающая подсказкаPanelTPanelКомпонент-контейнер для объединения компонентовCheckBoxКомпонент-переключатель, имеющий 2 или 3 состоянияGroupBoxTCheckBoxTRadioButton,TRadioGroupTGroupBoxComboBox 'TComboBoxКомпонент для ввода информации.
Представляет собойсочетания поля для ввода и выпадающего спискаListBoxTListBoxКомпонент-список, предоставляющий возможностьвыбора своих элементовCheckedListBoxTCheckListBo:<Компонент-список, состоящий из переключателейCheckBoxPictureBoxTImageКомпонент для отображения картинок (графическихфайлов)NumericUpDownTUpDownКомпонент для ввода числовой информацииStatusBarTimerTStatusBarКомпонент для отображения служебной информацииTTimerКомпонент, генерирующий циклические событияс определенным интерваломTcolBarTToolBarКомпонент, представляющий собой панельдля размещения на ней командных кнопокProgressBarTProgressBarКомпонент отображения протекания длительныхпроцессовMainMenuTMainMenuКомпонент, представляющий собой главное менюприложенияContextMenuTPopupMenuКомпонент, представляющий собой контекстное(всплывающее) менюOpenFileDialogTOpenDialogSaveFileDialogTSaveDialogКомпонент, обеспечивающий вывод на экранстандартного диалогового окна открытия файлаКомпонент, обеспечивающий вывод на экранстандартного диалогового окна сохранения файлаRadioButtonКомандная кнопкаКомпонент-переключатель, имеющий 2 состоянияКомпонент-контейнер для объединения другихкомпонентов по функциональному признакуКак видите, практически все компоненты имеют свои аналоги.
Исключениесоставляет компонент ToolTip. В Win32 всплывающая подсказка реализуетсябез дополнительного компонента. Каждый визуальный компонент Win32 имеет два свойства: Hint и ShowHint. Первое свойство определяет текст подсказки, который будет выведен при наведении мыши на компонент, второе - надобность в отображении текста подсказки для данного компонента. Если значениесвойства ShowHint установлено в True, то подсказка будет отображаться, вКомпонент TLabelпротивном случае (даже если свойство Hint не пустое) отображение подсказки не произойдет.Напомню, что в данной книге мы рассматриваем далеко не все компоненты. Поскольку назначение этой книги состоит в том, чтобы научить использовать компоненты, то здесь приведены только самые типовые (основные) из них. После прочтения этой книги вам будет вполне по силамполучить самостоятельно информацию по остальным компонентам Borland Delphi 2005.Итак, переходим к рассмотрению компонентов.
Начинаем рассмотрение суже известных нам по первым проектам компонентов - TLabel, TEdit иTButton.Компонент TLabelС компонентом TLabei мы успели познакомиться при создании нашего первогопроекта. Как вы уже знаете, этот компонент предназначен для отображения текстовой информации. Текст, который будет отображен, можно задавать как на этаперазработки формы, так и в процессе выполнения программы, присвоив значениесвойству Caption. Основные свойства компонента приведены в табл. 7.2.Таблица 7.2 » Основные свойства компонента TLabeiСвойствоКомментарийNameИмя компонента, используемое в программе для доступа к компоненту и его свойствамCaption _Текст, отображаемый в поле компонентаFontШрифт, который используется для отображения текстаColorЦвет Ф°наLeftРасстояние от левой границы формы до левой границы компонентаторРасстояние от верхней границы формы до верхней границы компонентаwidthШирина поля компонентап о л якомпонентаHeightВысота поля компонентаAutoSizeСвойство, определяющее, будет ли размер компонента зависеть от текста в полекомпонента.
В случае AutoSize=True размер компонента будет ограничен текстом в полекомпонента. В противном случае размер компонента определяется значениями свойствWidth, и HeightTransparentПризнак необходимости задания прозрачного цвета для поля компонента. ЕслиTransparent=True, то цвет компонента определяется цветом поверхности, на которойон находится. В противном случае цвет определяется значением свойства C o l o r>WjfГЛАВА 7 т Основные компоненты при программировании для Win 3 2Таблица 7.2 • Основные свойства компонента TLabel (окончание)СвойствоКомментарийAlignОпределяет границу, к которой будет «прижат» компонент.
Он может быть прижатк верхнему краю (alTop), к нижнему краю (alBottom), левому краю ( a l L e f t ) , правомукраю ( a l R i g h t ) , быть «растянутым» на всю форму ( a l c i i e n t ) . Также свойство можетиметь значение None - положение и размер компонента определяется свойствами тор,L e f t , Width и HeightAlignmentСпособ выравнивания текста в поле компонента. Текст может быть прижат к левому краю( t a L e f t J u s t i f y ) , к правому краю ( t a R i g h t J u s t i f y ) или находиться посередине(taCenter)Чтобы в поле компонента TLabel вывести числовое значение, его необходимо при помощи функций IntToStr или FloatToStr преобразовать в строку.
Первая функция позволяет переводить целые числа в строку, вторая - вещественные.Цвет поля компонента (Color) можно задать, указав название цвета(clGreen, clRed, c l B l u e и т.п.) или элемент цветовой схемы операционнойсистемы (например, clBackGround, clBtnFace). Разница состоит в том, чтово втором случае цветовая схема вашего приложения будет привязана к цвето-.вой схеме операционной системы и будет автоматически меняться при каждойее смене. По умолчанию используется как раз второй вариант.
Кстати, с помощью функции RGB можно задать любой цвет. Эта функция «переводит» цвет,представленный тремя составляющими (R- Red, красный; G - Green, зеленый;В - Blue, голубой) в номер цвета, понятный Delphi. Цвет поля компонента также может быть и «прозрачным». Для этого необходимо свойство T r a n s p a r e n tустановить в True.Теперь рассмотрим небольшую программу, демонстрирующую нам основные свойства этого компонента в действии. На рис. 7.1 приведен внешний видокна программы, а в листинге 7.1 - процедуры обработки события Click насоответствующих кнопках.Листинг 7.1 тТекст процедур обработки событий c l i c k на кнопках// Текст выравнивается по левому краю.procedure TForml.RadioButtonlClick(Sender: TObject);beginLabell.Alignment:=taLeftJustify;end ;// Текст выравнивается по центру.procedure TForml.RadioButton2Click(Sender: TObject);beginlabell-Alignment:=taCenter;end;Компонент TLabel// Текст выравнивается по правому краю.procedure TForml.RadioButton3Click(Sender: TObject);beginLabel1.Alignment:=taRightJustify;end;// Компонент прижимается к верхней границе формы.procedure TForml.RadioButton4Click(Sender: TObject);beginLabel1.Align:=alTop;end;// Компонент прижимается к нижней границе формы.procedure TForml.RadioButton5Click(Sender: TObject);beginLabell.Align:=alBottom;end;// Восстановление исходных значений свойств компонента.procedure TForml.RadioButton6Click(Sender: TObject);beginLabell.Align:=alNone;Labell.Left:=16;Labell.Top:=16;Labell.Width:=401;Labell.Height:=57;end;// Установка/сброс отображения всплывающей подсказки.procedure TForml.CheckBoxlClick(Sender: TObject);С помощьютоипснентаlabet йожигл !»>юодит;= текст-^е(* taleftijstffy - го пееону крь-ж»j:Г* taCenter - по центруi • Г* u£uttomГ"-taRn#iOj^fy-no правому краю ;С" alTop:<• И':>одноесет-ист во Shc*#lntРис.
7.1 т Окно программы, демонстрирующей основные свойства компонента TLabel•ГЛАВА 7 • Основные компоненты при программировании для Win32beginLabell.ShowHint:=CheckBoxl.Checked;end;// Установка /сброс прозрачного цвета..procedure TForml.CheckBox2Click{Sender: TObject);beginLabell.Transparent:=CheckBox2.Checked;end;Компонент TEditЭто тоже уже знакомый нам компонент. С его помощью мы вводили данные склавиатуры. Ниже в табл. 7.3 приведены основные свойства этого компонента.Таблица 7.3 » Основные свойства компонента TEditСвойствоКомментарийNameИмя компонента, используемое в программе для доступа к компоненту и его свойствамTextТекст, отображаемый з поле компонентаMaxLengthМаксимально допустимое число символов, которое можно ввести в поле компонентаFontШрифт, который используется для отображения текстаColorЦвет текста, находящегося в поле компонентаLeft •Расстояние от левой границы формы до левой границы компонентаторРасстояние от верхней границы формы до верхней границы компонентаwidthШирина поля компонентаHeightВысота поля компонентаB o r d e r S t y l e Вид рамки компонента.