Шупрута В.В. - Delphi 2005 - Учимся программировать (1080891), страница 32
Текст из файла (страница 32)
программа - '+ех;end;end.Компонент GroupBoxЭтот компонент мы уже упоминали ранее и даже использовали в предыдущихпримерах, так что настало время познакомиться с ним поближе. КомпонентGroupBox представляет собой контейнер для других компонентов. Обычно ониспользуется для объединения компонентов в группы по функциональным признакам.Основные свойства компонента приведены в табл.,5.9.yw-TГЛАВА 5 V Основные компоненты при программировании для .NETТаблица 5.9 т Основные свойства компонента GroupBoxСвойствоКомментарийNameИмя компонента, используемое для доступа в программе к компоненту и его свойствамTextТекст, располагающийся в верхней части.
Основное назначение свойства состоитв пояснении предназначения компонентов, находящихся в группеFontШрифт панели и всех входящих в нее компонентовEnabledСвойство, определяющее, доступна ли панель (Enabled=True) или нет (Enabled=False)VisibleСвойство позволяет отображать ( V i s i b l e = T r u e ) и скрывать ( v i s i b l e = F a l s e ) панельКомпонент ComboBoxКомпонент ComboBox представляет собой сочетание поля редактирования исписка, что позволяет вводить данные путем набора с клавиатуры или выборомиз списка.
Свойства компонента приведены в табл. 5.10.Таблица 5.10 т Основные свойства компонента ComboBoxСвойствоКомментарийNameИмя компонента, используемое для доступа в программе к компоненту и егосвойствамTextТекст, располагающийся в поле для ввода (если компонент находится в режимеDropDown или Simple)FontШрифт текстаEnabledСвойство, определяющее, доступен ли компонент для ввода/выбора(Enabled=True)или нет (Enabled=False)VisibleСвойство, позволяющее отображать ( v i s i b l e = T r u e ) и скрывать(Visible=False)компонентDropDownStyleСвойство, определяющее вид компонента: DropDown - поле вводаи раскрывающийся список, Simple - поле ввода со списком, DropDownList раскрывающийся списокMaxDr opDownl t emsDropDownWidfchМаксимальное количество показываемых элементов в выпадающем спискеШирина области спискаItemsЭлементы списка - коллекция строкItems.SelectedlndexНомер элемента, который в данный момент выбран в списке. Если выбранногоэлемента нет, то значение свойства равно - 1Items.
CountОбщее количество элементов спискаПризнак необходимости сортировки элементов коллекции после добавленияочередного элементаSortedLocation.X,Location.YСвойство, определяющее положение компонента на поверхности формыSize.WidthSize.HeightРазмер компонента с учетом (для типа simple) или без учета (для типовDropDown и DropDownList) размера области списка или области вводаКомпонент ComboBoxytifСписок, отображаемый в поле компонента, можно формировать во времясоздания формы или во время работы программы.Чтобы сформировать список во время работы программы, надо вызватьметод Add у свойства I t e m s (которое является в свою очередь объектом).Например, следующий фрагмент кода формирует упорядоченный по алфавитусписок:// Метод очистки элементов списка.ComboBoxl.Items.Clear;.// Установка признака необходимости сортировки.ComboBoxl.Sorted:=True;// Заполнение элементов списка.ComboBoxl.Text:='Англия';ComboBoxl.Items.Add('Англия');ComboBoxl.Items.Add('Франция');ComboBoxl.Items.Add('Германия');ComboBoxl.Items.Add('Италия');ComboBoxl.Items.Add('Греция');ComboBoxl.Items.Add('Испания');А на экране сформированный подобнымобразом список выглядел бы, как показано наРис.
5.8 т Результат примененияметода Add к свойству Itemsрис. 5.8.Аналогичного результатаможно добиться, если использовать для ввода элементовEnter ttie strings h the collection (one pef IneJ:Англиясписка редактор свойств StringФранцияГерманияCollection Editor. С помощьюИталияГрецияэтого редактора список можноИспаниясформировать во время создания формы. Для этого необходимо щелкнуть по кнопке стремя точками в строке свойства Items (Элементы) и в появившемся окне String Collection Editor (рис. 5.9) ввести элеН.Фменты списка.Следующая программа деРис.
5.9 • Формирование списка компонентамонстрирует использованиеComboBox во время создания формыГЛАВА 5 Т Основные компоненты при программировании для .NETПроверьте свои знание:1, Столицей какого государства является г,Велпиигтон?•кВведите отввт>*J ;2- Сколько лет влилась сто летняя война?:1<В&едигеответ> JJy ] ! ' ', ','.','.* ',', ', '1В каком месяце празднуется ВеликаяО б ,СоииаоистичеР•|<Вбедиге ответ> •*(Праъеритъ | Завершение работы|[Вана оценка:Рис. 5.10 • Форма приложения, демонстрирующего использование компонента ComboBoxкомпонента ComboBox для ввода данных.
Форма приложения приведена нарисунке 5.10.Значения свойств компонентов ComboBox приведены в табл. 5.11.Таблица 5 . 1 1 т Свойства компонентов ComboBoxСВОЙСТВОComboBoxiComboBox2СотЬоВохЗText<Введите<Введите<ВведитеItemsАвстралияответ>октябрьЮАР98100Х16135140TrueFalseFalseВеликобританияКанадаНоваяSortedответ>Зеландияответ>ноябрьдекабрьянварьфевральТекст программы (процедуры обработки события C l i c k ) приведен влистинге 5.6.Листинг 5.6 т Текст программы, поясняющей использование компонента ComboBox// Процедура выставления итоговой оценки за тест.procedure TWinForml.Buttonl_Click(sender: System.Object;e: System.EventArgs);varmark:integer; // Оценка за тест.beginКомпонент ListBox// Ввод начального значения оценки// (каждый неправильный ответ уменьшает ее на 1).mark:=5;// Проверка ввода всех ответов в ComboBoxl-СотпЬоВохЗ.if (ComboBoxl.Selectedlndex=-1) or(ComboBox2.Selectedlndex=-1) or(СошЬоВохЗ.
Selectedlndex—l)thenbeginMessageBox.Show('Необходимо указать все ответы',1Ошибка при вводе данных',MessageBoxButtons.OK,MessageBoxIcon.Information);Exit;end;// Формирование оценки.if ComboBoxl.Selectedlndex<>3then mark:=mark-l;if ComboBox2.Selectedlndex<>2then mark:=mark-l;if СотЬоВохЗ .Selectedlndexolthen mark:=mark-l;Label5.Text:='Ваша оценка: '+mark.ToString;and;Программа работает следующим образом.
Изначально в переменную,которая будет содержать оценку, заносится значение 5. Затем осуществлетсяпроверка - были ли введены данные во все поля для ввода. Для этогоиспользуется свойство I t e m l n d e x компонента ComboBox, которое содержит - 1 , если элемент списка не выбран. В случае отсутствия хотя бы одногоответа выводится информационное сообщение и производится досрочноезавершение процедуры. Если все ответы введены, то осуществляется последовательное сравнение введенных ответов с правильными. Каждый неправильный ответ уменьшает оценку (значение переменной mark) на единицу.Компонент ListBoxДанный компонент представляет собой список, в котором пользователь может выбирать нужный элемент. Основные свойства компонента приведены втабл. 5.12.ГЛАВА 5 т Основные компоненты при программировании для .КЕТТаблица 5.12 •Основные свойства компонента ListBoxСвойствоКомментарийNameИмя компонента, используемое для доступа в программе к компоненту и егосвойствамЭлементы списка - коллекция строкНомер элемента, который в данный момент выбран в списке.
Если выбранногоэлемента нет, то значение свойства равно -1Общее количество элементов спискаПризнак необходимости (Sorted=True) сортировки элементов коллекции последобавления очередного элементаСвойство определяет режим выбора элементов списка. Может приниматьследующие значения: One - только один элемент, MultiSimple - возможенвыбор нескольких элементов, MultiExtended - расширенный вариант выборанескольких элементов списка. В последнем случае несколько элементов можновыбирать нажатием клавиши Ctrl, а также выбирать диапазон с помощьюнажатой клавиши ShiftПризнак необходимости всегда отображать вертикальную полосу прокрутки.Если свойство равно False, то полоса прокрутки отображаться не будет,в результате чего не будут отображаться некоторые элементы спискаПризнак необходимости отображать список в несколько .колонок.
Количествоколонок зависит от количества элементов и размера компонентаШрифт, используемый для вывода элементов спискаСвойство, определяющее положение компонента на поверхности формыItemsItems.SelectedlndexItems.CountSortedSelectionModeScrollAlwaysVisibleMultiColumnFontLocation.X,Location.YSize.WidthSize.HeightРазмер компонента с учетом (для типа simple) или без учета (для типовDropDown и DropDownList) размера области списка или области вводаСписок, отображаемый в поле редактирования, можно сформировать какпри создании формы, так и при выполнении программы.
В первом случае необходимо щелкнуть по кнопке с тремя точками в поле свойства Items и в окнередактора свойств String Collection Editor (рис. 5.11) ввести элементы списка.Во втором случае необходимо вызвать уже знакомый нам метод Add свойстваItems.Далее приведена программа, демонстрирующая пример использования этого компонента. Программа просматривает файлы изображений, находящихсяв выбранном каталоге.Форма программы приведена на рис. 5.12, а текст - в листинге 5.7.Программа работает следующим образом.
Элементы списка ListBox заполняются во время выполнения программы. Заполняет список компонента L i s t Box процедура обработки события Load формы. Для доступа к выбранной папкеиспользуется объект D i r e c t o r y Info. Список файлов представлен в виде массива F i l e l n f o . Формирует массив метод G e t F i l e s . Для отображения файловКомпонент ListBoxVjfЗенит (Санкт-П етербург)I O K O M C T W(Москва)Спартак (Москва]ЦСКА (Москва)эотор (Волгоград)-атурн (Раменское)Крылья Советов (Самара]Рис. 5.11т Ввод элементов списка с помощью окнаредактора свойств String Collection EditorРис.