Шупрута В.В. - Delphi 2005 - Учимся программировать (1080891), страница 28
Текст из файла (страница 28)
Метод порожденного класса, замещающий виртуальный метод•родительского класса, помечается директивой o v e r r i d e .Л и с т и н г 4.11 • Метод showinf о в описании класса TEmployee помечен директивойoverride/ / Класс TEmployee создан на основе TPersonal.TEmployee = class(TPersonal)FDepartment:byte; / / Номер отдела сотрудника.function GetDepartment:byte;procedure SetDepartment(New_Department:byte);publicconstructor Create(Name:TName;Age:TAge;Department:byte);procedure showinfо; override; / / Метод Showlnfo заменен// на собственный.// Свойства объекта.property Department:byteОсновные принципы О О Пread GetDepartmentwrite SetDepartinent ;end;Несколько слов о классах и объектах DelphiКратко рассмотрев основные принципы ООП, можно немного по-другомувзглянуть на исходный код программ, написанных на языке Delphi.
Послесоздания нового проекта (например, проекта для платформы Win32) исходныйкод выглядит так, как показано в листинге .4.12.Листинг 4.12 т Заготовка исходного кода для нового проекта Win32unit Unitl;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms, Dialogs;// Объявление класса формы.typeTForml = class(TForm)private{ Private declarations }public{ Public declarations }end;varForml: TForml;implementation{$R *.dfm}end.Для реализации интерфейса будущей программы среда разработки Borland Delphi 2005 использует библиотеку классов, содержащую большоеколичество разнообразных классов.
С помощью этих классов описываетсяформа приложения, а также различные компоненты формы (командныекнопки, поля редактирования, метки и т.д.).Во время проектирования формы приложения среда разработки автоматически добавляет в текст программы необходимые объекты. Когда программист, добавляя необходимые компоненты, формирует будущее диалоговоеокно, Delphi формирует описание класса формы. Когда программист создаетфункцию обработки события формы или ее компонента, Delphi добавляетобъявление метода в описание класса формы приложения.•ГЛАВА 4 • Объектно-ориентированное п(ннфаииироваииеВ листинге 4.13 приведен измененный исходный код проекта последобавления на форму компонента-кнопки (TButton) и описания функцииобработки события C l i c k этой кнопки.Листинг 4.13 тТеперь в описании класса формы произошли измененияunit Unitl;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls;// Объявление класса формы.typeTForml = class(TForm)Buttonl: TButton;procedure ButtonlClick(Sender: TObject); // Объявление метода.private{ Private declarations }public{ Public declarations }end;varForml: TForml;imp 1 ement at i on{$R *.dfm}// Реализация метода.procedure TForml.ButtonlClick(Sender: TObject);begin1ShowMessage('Обработка события Onclick );•end;end.Помимо классов визуальных компонентов в библиотеку классов входят иклассы так называемых невизуальных (невидимых) компонентов, которыеобеспечивают создание соответствующих объектов и доступ к их методам исвойствам.
Типичным примером невизуального компонента является таймер(TTimer).На этом мы заканчиваем теоретическое знакомство с принципамиобъектно-ориентированного программирования. Следующая глава будетпосвящена рассмотрению основных компонентов, с помощью которыхсоздаются программы для операционной системы Windows.Изучаем основныекомпоненты припрограммированиидля .1УЕТВэтой главе приведено описание базовых компонентов. Следует обратитьвнимание, что показать назначение и возможности какого-либо компонента практически невозможно, не используя другие компоненты.
Поэтому в приведенных примерах основное внимание уделяется изучаемомукомпоненту, название которого вынесено в заголовок раздела. В таблицахприводятся основные свойства, которые отражают специфику компонента ипредставляют для начинающего программиста наибольший интерес. Болееподробную информацию о компонентах вы можете найти в справочной системе.Базовые компоненты располагаются на вкладках Windows Forms и Components окна Tool Palette.
Некоторые компоненты нам уже знакомы - они кратко будут рассмотрены вначале, на незнакомых компонентах мы остановимсяболее подробно.Компонент LabelС этим компонентом мы уже успели познакомиться, когда создавали наш первый проект. Как вы уже знаете, этот компонент предназначен для отображения текстовой информации. Текст, который будет отображен, можно задаватькак на этапе разработки формы, так и в процессе выполнения программы,присвоив значение свойству Text. Основные свойства компонента приведеныв табл. 5.1.ГЛАВА 5 • Основные компоненты при программировании для .NETТаблица 5.1 т Основные свойства компонента LabelСвойствоКомментарийNameИмя компонента.
Это имя используется для доступа в программе к компоненту и егосвойствамTextТекст, отображаемый в поле компонентаFontШрифт, который используется для отображения текстаForeColorЦвет текста, находящегося в поле компонентаBackColorЦвет фона поля компонентаLocation. хРасстояние от левой границы формы до левой границы компонентаLocation. YРасстояние от верхней границы формы до верхней границы компонентаS i z e . WidthШирина поля компонентаs i z e . HeightВысота поля компонентаBorderstyleВид рамки компонента.
По умолчанию рамка отсутствует (None). Свойство такжеможет принимать значения F i x e d S i n g l e (Тонкая рамка) и Fixed3D (Объемная рамка)Способ выравнивания текста в поле компонента. Текст может быть прижат к левомукраю по высоте (TopLef t ) , посередине (TopCentre) или быть выровненнымпо центру(MiddleCenter)Text A l i g nЧтобы в поле компонента Label вывести числовое значение, это значениенеобходимо при помощи функции T o S t r i n g преобразовать в строку.Цвет текста (ForeColor) и фона (BackColor) можно задать, указав название цвета (Green, Red, Blue и т.п.) или элемент цветовой схемы операционной системы (например, System.
Drawing. SystemColors . C o n t r o l ) .В чем разница? Она состоит в том, что цветовая схема вашего приложенияво втором случае будет привязана к цветовой схеме операционной системыи будет автоматически меняться при каждой ее смене. По умолчанию используется как раз второй вариант. Цвет фона также может быть и прозрачным(Color.
T r a n s p a r e n t ) .Теперь рассмотрим небольшую программу, демонстрирующую нам основные свойства этого компонента в действии. На рис. 5.1 приведен внешний видокна программы, а в листинге 5.1 - процедуры обработки события C l i c k насоответствующих кнопках.Листинг 5.1т Текст процедур обработки событий C l i c k на кнопкахprocedure TWinForm.RadioButton6_CheckedChanged(sender: System.Object;e: System.EventArgs);beginLabell.TextAlign := ContentAlignment.TopRight;end;procedure TWinForm.RadioButton5_CheckedChanged(sender: System.Object;e : System.EventArgs);Компонент LabelbeginLabell .TextAlign := Content Alignment .TopCenter,end;procedure TWinForm.RadioButton4_CheckedChanged(sender: System.Object;e: System.EventArgs);beginLabell.TextAlign ::= ContentAlignment.TopLeft;end;procedure TWinForm.RadioButtonl_CheckedChanged(sender: System.Object;e: System.EventArgs);beginLabell.BorderStyle := BorderStyle.None;end;procedure TWinForm.R.adioButton3_CheckedChanged(sender: System.Object;e: System.EventArgs);beginLabell.BorderStyle := BorderStyle.Fixed3D;end ;procedure TWinForm.RcidioButton2_CheckedChanged(sender: System.Obj ect;e: System.EventArgs);beginLabell.BorderStyle := BorderStyle.FixedSingle;end;•d <>сноннм{ с ю Ь г л м компонента Label' 1 -Д"С помощью компонента Labei можно выводить текстовуюинформацию.
Текст в поле компонента может бытьа 'Форматирован различные способами. Для измейсщйс югоетсвующих сясйств наз»л«иайгвкнопки,;р »спояожежые ниже.~ 2ва"«ггво Te>^A£gn - задает способ выравнивания текста ~1~ по лемму краю ftopleft]• •':. ;• С: ги центру (ТорСвгЖе)••'т' •~ Свойство Bcwdef Style • задает вод рамки1' N one - pat^a стс^ствуетС FbostSlrtgle • обычная рамкаС. FwedS) - "объемная" рамкаРис.
5.1 • Окно программы, демонстрирующей основные свойства компонента LabelуьМ¥ГЛАВА 5 • Основные компоненты при программировании для .NETКомпонент TextBoxЭто тоже знакомый нам компонент. С его помощью мы вводили данные склавиатуры. Ниже в табл. 5.2 приведены основные свойства этого компонента.Таблица 5.2 т Основные свойства компонента TextBoxСвойствоКомментарийNameИмя компонента. Это имя используется для доступа в программе к компоненту и егосвойствамTextТекст, отображаемый в поле компонентаMaxLengthМаксимально допустимое число символов, которое можно ввести в поле компонентаMultilineРазрешает ( M u l t i l i n e = T r u e ) или запрещает ( M u l t i l i n e = F a l s e ) ввод несколькихстрок текстаМассив строк, элементами которого являются строки, расположенные в полеLinesредактирования в случае использования режима M u l t i l i n eFontШрифт, который используется для отображения текстаForeColorЦвет текста, находящегося в поле компонентаBackColorЦвет фона поля компонентаLocation.хРасстояние от левой границы формы до левой границы компонентаLocation.
YРасстояние от верхней границы формы до верхней границы компонентаSize.widthШирина поля компонентаSize.HeightВысота поля компонентаBorderStyleВид рамки компонента. Свойство может принимать значения F i x e d s i n g l e (ТонкаяText A l i g nСпособ выравнивания текста в поле компонента. Текст может быть прижат к левомуScrollBarsСвойство задает вид полосок прокрутки. Может принимать значения H o r i z o n t a l(горизонтальные полосы прокрутки), V e r t i c a l (вертикальные), Both (задействоватьоба вида), None (не отображать полосы прокрутки)рамка) и Fixed3D (Объемная рамка) и None (Рамка отсутствует)краю ( L e f t ) , правому краю (Right) или быть выровненным по центру (Center)По умолчанию в поле этого компонента отображаются все символы, которые пользователь набирает с клавиатуры.
Это может быть не всегда удобно,поэтому предусмотрена возможность фильтрации вводимых символов. В качестве примера скажу, что для того чтобы отображать только нужные символы, необходимо для данного компонента написать обработчик событияKeyPress (возникает при нажатии клавиши). Если вы не хотите, чтобы какой-либо символ отображался, то присвойте в поле Handled параметра е значение True.Ниже приведен пример программы (листинг 5.2), поясняющий все вышесказанное.'Окно программы приведено на рис. 5.2.Компонент TextBoxlВвод исходных данных с помощью компонентаTextBox. Выберите вариант исходных данных спомощью соответствующих кнопок[пример веша строки"Тип исходных данныхI(• ввод текстаi(~ ввод целых чисел\С ввод дробных чиселI^"* веодпароляiКоличество введенных символов: 13Рис.