Шупрута В.В. - Delphi 2005 - Учимся программировать (1080891), страница 47
Текст из файла (страница 47)
7.9 • Форма окна программы, демонстрирующейвариант использования компонента TListBoxЛистинг 7.5 т Текст программы для просмотра изображенийunitUnitl;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics,Controls, Forms, Dialogs, MPlayer, StdCtrls;typeTForml = class(TForm)ListBoxl: TListBox;MediaPlayerl: TMediaPlayer;procedure ListBoxlClick(Sender: TObject);private{ Private declarations }publicКомпонент TCheckListBox{ Public declarationsend;}varForml: TForml;// Перед использованием своей процедуры ее необходимо объявить.procedure song_play(file_name:string);imp1ement at ion{$R *.dfm}// Процедура воспроизведения файла file_name.procedure song_play(file_name:string);beginForml.MediaPlayerl.FileName:=file_name;Forml.MediaPlayerl.Open;Forml.MediaPlayerl.Play;end ;// Процедура выбора элемента списка - определение// имени воспроизводимого файла.procedure TForml.ListBoxlClick(Sender: TObject);begincase ListBoxl.Itemlndex of0: song_play('01.mp3');1: song_play('02.mp3');2: song_play('ОЗ.шрЗ');3: song_play('O4.mp3');end;•ad;end.Компонент TCheckListBoxЭтот компонент также является списком, однако перед каждым его элементомнаходится переключатель TCheckBox.
Свойства компонента приведены втабл. 7.15.Таблица 7.15 т Основные свойства компонента TCheckListBoxСвойствоКомментарийNameИмя компонента, используемое в программе для доступа к компоненту и его свойствамItemsЭлементы списка - коллекция строкI t e m s . Count Общее количество элементов спискаГЛАВА 7 • Основные компоненты при программировании для Win32Таблица 7.15 т Основные свойства компонента TCheckListBox (окончание)СвойствоКомментарийcheckedСвойство, определяющее, выбран элемент списка или нет.
Если список находитсяв режиме M u l t i S e l e c t , то для проверки состояния элемента списка необходимоиспользовать его индекс (checked [ i n d e x ] )SortedПризнак необходимости (Sorted=True) сортировки элементов коллекции последобавления очередного элементаColumnsЗадает количество колонок, в которые будет формироваться список, если элементысписка невозможно полностью отобразить в поле компонентаAlignОпределяет границу формы, к которой «прикреплена» панель. Панель может бытьприкреплена к верхней (alTop), нижней (alBottom), левой ( a l L e f t ) или правой ( a l R i g h t )границе формы, занимать всю форму ( a l C l i e n t ) либо быть независимой (alCustom)MultiSelectСвойство, определяющее режим выбора элементов списка.
Может принимать следующиезначения: True - в списке можно выбирать несколько элементов, False - только одинэлементШрифт, используемый для отображения содержимого поля редактирования и элементовспискаFontФормируетсяиспользованиемсвойству Items.можно получитьсписок TCheckedListBox также двумя способами - либо сокна String List Editor, либо с использованием метода Add кДоступ к переключателям во время выполнения программычерез свойство Checked:procedure TForml.ButtonlClick(Sender: TObject);vari : integer;total : integer;begintotal := 0;for i := 0 to CheckListBoxl.Items.Count-1 doif CheckListBoxl.Checked[i] then inc(total);ShowMessage('Всего включено '+IntToStr(total)+' флажков');end;Компонент TlmageКомпонент Tlmage является аналогом компонента P i c t u r e B o x (.NET) иобеспечивает отображение иллюстрации (файла рисунка). Основные свойствакомпонента приведены в табл.
7.16.Таблица 7 . 1 6 т Основные свойства компонента TlmageСвойствоКомментарийNameИмя компонента, используемое в программе для доступа к компоненту и егосвойствамКомпонент TlmageТаблица 7.16 т Основные свойства компонента Tlmage (окончание)СвойствоКомментарийPictureИллюстрация, отображаемая в поле компонентаCenterПризнак необходимости размещения картинки независимо от ее размера по центруполя компонента.
Если свойство установлено в True, то картинка центрируетсяStretchПризнак необходимости изменения размеров изображения под размер поля компонента.Если свойство установлено в True, то картинка «вписывается» в поле компонента,ее ширина и высота становятся равными значениям свойств w i d t h и H e i g h tполя компонента соответственно. Также при этом осуществляется масштабированиеProportionalПризнак необходимости изменения размеров изображения под размер поля компонента.В отличие от свойства s t r e t c h производится пропорциональное масштабированиепо одной из осей (в зависимости от размера картинки и размера компонента)TransparentПризнак необходимости задания прозрачности компонента. Если свойствоустановлено в True, то фон картинки (прозрачный цвет) не отображаетсяAutoSizeПризнак необходимости автоматического изменения размеров компонента подразмер загружаемой картинки.
Если свойство установлено в True, то при загрузкеизображения в компонент значения его свойств w i d t h и H e i g h t автоматическиизменятсяiLeftРасстояние от левой границы формы до левой границы компонентаТорРасстояние от верхней границы формы до верхней границы компонентаwidthШирина поля компонента (области отображения)HeightВысота поля компонента (области отображения)AlignОпределяет границу формы, к которой «прикреплена» панель. Панель может бытьприкреплена к верхней (alTop), нижней (alBottom), левой ( a l L e f t ) или правой( a l R i g h t ) границе формы, занимать всю форму ( a l C l i e n t ) либо быть независимой(alCustom)VisibleПризнак необходимости отображения компонента (и, соответственно, изображения)Чтобы задать иллюстрацию во время обработки формы, необходимо встроке свойства P i c t u r e щелкнуть по кнопке с тремя точками и впоявившемся окне редактора свойств Picture Editor выбрать файлизображения.
Добавленное таким образом в форму изображение будетобработано Delphi и помещено в файл ресурсов проекта. Соответственно, самфайл изображения нам больше не понадобится. Если же потребуется загружатькартинку во время выполнения программы, то следует воспользоватьсяметодом LoadFromFile (дословно - «загрузить из файла»). В качествепараметра нужно указать полное имя загружаемого в Tlmage файла. Например,инструкцияImagel.Picture.LoadFromFile('d:\example.bmp');загрузит и отобразит в компоненте Imagel файл d:\example.bmp.
Компонентможет отображать не только файлы формата bmp. Данным методом можнотакже загружать файлы jpg, wmf, emf. Однако следует учесть один момент. Есливы захотите, например, воспользоваться методом LoadFromFile для загрузкиjpg-файла, то будет выдана ошибка. Все дело в том, что для загрузки иГЛАВА 7 • Основные компоненты при программировании для Win32отображения таких файлов (jpg) необходимо в секции u s e s «прописать»модуль j ред. А если вы воспользовались окном Picture Editor для загрузки jpg-,файла, то этого делать не требуется - ссылка на модуль j p e g в секцию u s e sбудет помещена автоматически.Помните, что при загрузке изображения компонент TImage не обеспечивает масштабирования без искажения, если размер компонента (областиотображения рисунка) непропорционален размеру рисунка.На рис. 7.10 приведена форма окна программы, поясняющей возможныережимы отображения картинок компонентом TImage.• Г" Свойство Stretch• - Г" Свойство Center • • Г* Свойство ProportionalРис.
7.10 т Форма окна программы, поясняющейиспользование компонента TImageТекст основных процедур программы приведен в листинге 7.6.Листинг 7.6 т Использование различных режимов отображения компонента Timage// Сброс/установка свойства Stretch.procedure TForml.CheckBoxlClick(Sender: TObject);beginImagel.Stretch:=CheckBoxl.Checked;end;Компонент TUpOown// Сброс/установка свойства Center.procedure TForml.CheckBox2Click(Sender:beginImagel.Center:=CheckBox2.Checked;end;,TObject)// Сброс/установка свойства Proportional.procedure TForml.CheckBox3Click(Sender: TObject)beginImagel.Proportional:=CheckBox3.Checked;end;Компонент TUpDownЭтот компонент предназначен для ввода числовых данных. Компонентнаходится на вкладке Win32 окна Tool Palette и предназначен для ввода толькоцелых числовых данных.
Вводить данные можно как с клавиатуры, так и сиспользованием стрелок Увеличить/Уменьшить.Основные свойства компонента приведены в табл. 7.17.Таблица 7.17 т Основные свойства компонента TUpDownСвойствоКомментарийNameИмя компонента, используемое в программе для доступа к компоненту и егосвойствамPositionТекущее числовое значение компонентаMinМинимальное значение, которое можно ввести в компонентМахМаксимальное значение, которое можно ввести в компонентIncrementВеличина, на которую увеличивается (или уменьшается) значение свойства P o s i t i o nпри нажатии на соответствующую стрелкуСвойство определяет, будет ли сбрасываться значение P o s i t i o n при достиженииграницы диапазона (Min или Мах).
Если, например, свойство установлено в False,то по достижении минимума или максимума при дальнейшем нажатиисоответствующих стрелок изменение значения свойства P o s i t i o n происходитьне будетWrapOrientationСвойство задает тип ориентации кнопок-стрелок Увеличить/Уменьшить. Можетпринимать следующие значения: u d v e r t i c a l - вертикальная ориентация,u d H o r i z o n t a l - горизонтальнаяНиже приведен пример использования компонента TUpDown для вводачисловых данных.
На рис. 7.11 изображена форма окна программы, котораяпозволяет с помощью данного компонента изменять свойства компонентаТМето.ГЛАВА 7 Т Основные компоненты при программировании для Win32^Использование компонента UpDown1..j'[DMemol.Width-160 : '• -Ц •Пример использованиякомпонента TUpDownMemol.Height-160' • ^ 4 •Свойство Мл = 80Свойство Мах - 1 6 0 ' •'•-••~7J Свойство Increment - 1Т:::Свойство Wrap ' • • '• • •Рис. 7.11 т Форма окна программы, демонстрирующейвариант использования компонентов TUpDownКомпонент ТМето очень похож на компонент TEdit, но является более универсальным, так как позволяет хранить множество строк текста, определяемое свойством Lines. Фактически компонент TextBox (.NET) является совокупностью ТМетои TEdit по функциональным возможностям. С помощью компонентов UpDownl иUpDown2 (листинг 7.7) изменяются размеры компонента Memol, а с помощьюкомпонента UpDown3 - свойство Increment компонентов UpDownl и UpDown2.Листинг 7.7 т Пример использования компонента TUpDown// Нажатие на компонент UpDown3.// Изменение приращения значения (свойство Increment).procedure TForml.UpDown3Click(Sender: TObject; Button: TUDBtnType);beginUpDownl.Increment:=UpDown3.Position;UpDown2 .