Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера icon

Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера




Скачати 104.63 Kb.
НазваЗанятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера
Дата конвертації01.11.2012
Розмір104.63 Kb.
ТипДокументи
джерело

Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера

Занятие посвящено таким важным понятиям, как классы и объекты в Delphi. Обсуждаются вопросы, связанные с объектом Application и Screen. Слушатель делает проект и приложение, в котором пользователь перемещает форму в углы и центр экрана и изменяет вид указателя мыши. При этом используются свойства и методы объекта Applications и объекта Screen.

  1. Понятия объекта и класса

В объектно ориентированных языках, к числу которых относится Delphi, большое значение имеют понятия объекта и класса. Объектом называется специальным образом оформленный фрагмент программы, заключающий в себе данные и подпрограммы для их обработки. Данные называются полями объекта, а подпрограммы – его методами. Объект в целом предназначен для решения какой-либо конкретной задачи и воспринимается в программе как неделимое целое. Два главных свойства объекта: функциональность и неделимость делают его самостоятельной и даже более того, самодостаточной частью программы и позволяют легко переносить объект из одной программы в другую. Разработчики Delphi создали сотни объектов для программистов, которые можно рассматривать как кирпичики, из которых он строит многоэтажное здание программы.

Познакомимся еще с одним важным понятием в Delphi «класс». Классом в Delphi называются функционально законченные фрагменты программ, служащие образцами для создания подобных себе экземпляров. Однажды создав класс, программист может включать его экземпляры в разные программы или в разные места одной и той же программы. В состав Delphi входит несколько сотен классов, так называемых стандартных классов. Совокупность стандартных классов определяет мощные возможности этой системы программирования.

Каждый компонент принадлежит к строго определенному классу, а все конкретные экземпляры компонентов, вставляемые в форму, получают имя класса с добавленным числовым индексом.

Запустите Delphi, начните новый проект. На форму поместите компоненты: командную кнопку и метку. Имена компонентов не меняйте. Если вы посмотрите начало текста в окне кода, то увидите следующие строки:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type

TForm1 = class(TForm)

Label1: TLabel;

Button1: TButton;

private

{ Private declarations }

public

{ Public declarations }

end;


var

Form1: TForm1;

implementation

{$R *.DFM}

end.

По используемому в Delphi соглашению все имена классов начинаются с буквы T. Так имя TForm1 означает имя класса, созданного по образцу стандартного класса TForm.

Строка

TForm1=class(TForm)

определяет новый класс TForm1, который порожден от (создан по образцу от) стандартного класса TForm. Строка

Form1: TForm1;

создает экземпляр этого класса – объект с именем Form1.

Стандартный класс TForm описывает пустое Windows окно, в то время как класс TForm1 описывает окно с уже вставленными в него компонентами. Описание этих компонентов содержат строки:

Button1: TButton;

Label1: TLabel;

Они указывают, что компонент Button1 представляет экземпляр - объект стандартного класса TButton, а компонент Label1 – экземпляр – объект класса TLabel.

Как вы увидите дальше, классы служат основным инструментом реализации мощных возможностей Delphi. ^ Класс является образцом, по которому создаются объекты, и наоборот, объект – это экземпляр реализации класса.

В нашем повествовании был использован термин «порожден» (класс TForm1 порожден от стандартного класса TForm). Это означает, что новый класс TForm1 унаследовал все возможности родительского класса TForm и добавил к ним собственные в виде компонентов, которые вставлены в форму. Перечень вставленных компонентов составляет значительную часть описания класса:

type

TForm1 = class(TForm)

Label1: TLabel;

Button1: TButton;

private

{ Private declarations }

public

{ Public declarations }

end;

Свойство наследования классами-потомками всех свойств родительского класса и обогащения их новыми возможностями является одним из фундаментальных принципов объектно-ориентированного программирования. От наследника может быть порожден новый наследник, и т. д. В результате создается ветвящаяся иерархия классов, на вершине которой располагается самый простой класс. На самой нижней ступени иерархии – мощные классы-потомки, которым по плечу решение сложнейших проблем.

  1. ^ Объект Application

Для каждого нового проекта Delphi автоматически создает объект Application. В нем собраны данные и подпрограммы, необходимые для нормального функционирования Windows приложения. Объект Application относится к классу TАpplication. Создается объект автоматически и доступен в любой программе. Объект не помещен в палитру компонентов, поэтому его свойства не доступны на этапе конструирования, но становятся доступны на этапе выполнения программы. Объект Application является посредником между программой и операционной системой Windows.

Обращения к методам объекта Application можно увидеть в файле проекта (файл с расширением .dpr). Эта программа автоматически создается Delphi, представляет собой программу, написанную на языке Object Pascal и предназначенную для обработки компилятором. Чтобы увидеть строки программы файла проекта нужно щелкнуть по опции Project/View Sourse главного меню. Delphi покажет окно кода, содержащее такие строки:

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Строка

Application.Initialize;

означает обращение к методу Initialaze объекта Application. После выполнения этого метода управление перейдет к выполнению следующей строки программы, в которой вызывается метод CreateForm объекта Application. Этот метод создает и показывает на экране окно главной формы. Выполняемый далее метод Run реализует этап получения и обработки поступающих от Windows сообщений о действиях пользователя.

Мы познакомимся еще c двумя методами объекта Application. Их мы будем использовать во время выполнения приложения, которое будем создавать в настоящем занятии в Delphi.

Метод Terminate завершает работу программы. Синтаксис метода следующий:

Application.Terminate

Этот метод удобно использовать в коде кнопки, по щелчку по которой программа будет завершать свою работу.

Объект Application имеет функцию MessageBox, которая предоставляет удобное средство вывода на экран небольшого сообщения. С ее помощью создается и показывается диалоговое окно с кнопками, сообщением в окне и заголовком. Формат функции следующий:

Application . MessageBox ( ‘Текст в окне’ , ’Заголовок окна’ , flags);

Параметр flags влияет на внешний вид окна и может представлять комбинацию некоторых значений. В настоящем занятии подробно рассматривать значения этого параметра мы не будем. Опишем одно значение параметра, которое используем в программе занятия:

mb_IconStop

Тогда окно будет иметь следующий вид:



Вся строка, вызывающая такое окно MassageBox ,будет выглядеть следующим образом:

Application . MessageBox ( ‘Текст в окне’ , ’Заголовок окна’ , mb_IconStop);

Значение mb_IconStop определяет размещение в окне значка Stop. Единственная кнопка Ok размещена по умолчанию. Следующая строка даст точно такое же окно, но кнопка Ok в строке определена явно:

Application . MessageBox ( ‘Текст в окне’ , ’Заголовок окна’ , mb_IconStop+mb_Ok);

Кстати, скажем, что с помощью других значений параметра flags можно размещать в окне сообщения другие кнопки и пиктограммы.

  1. ^ Объект Screen

Еще один объект, с которым автоматически связывается любая запущенная программа, это объект Screen (экран). Этот объект относится к классу TScreen. Он включает свойства и методы, упрощающие работу с дисплеем компьютера. В том числе с помощью этого объекта удобно оперативно изменять вид используемого программой указателя мыши.

Как и большинство видимых объектов, объект Screen имеет свойства: Width – ширина, Height – высота экрана в пикселах.

Свойство, которое отвечает за вид используемого указателя мыши, - Cursor.

В Delphi определены следующие стандартные указатели мыши.


Значение свойства Cursor

Вид указателя

crNone





crArrow





crCross





crlBeam





crSize





CrSizeNESW





crSizeNS






crSizeNWSE





crSizeWE





crUpArrow





crHourGlass




crDrag




crNoDrop




crHSplit



crVSplit



crMultiDrag



crSQLWait



crNo



crAppStart



crHelp



crHandPoint






  1. ^ Проект 4: перемещение формы по экрану компьютера

В настоящем занятии мы сделаем проект, который дает возможность пользователю, щелкая по командным кнопкам, размещенным на форме, перемещать форму в углы и центр экрана. При этом будут изменяться значения свойств Top и Left формы. Щелкая на других командных кнопках, пользователь сможет изменять вид используемого указателя мыши. Перед завершением работы проекта программа выдаст дополнительное сообщение в окне MsgBox, о том, что программа завершает свою работу.

Первая функция проекта – перемещение формы по экрану похожа на аналогичную функцию проекта 2. В нем мы, щелкая по командным кнопкам, перемещали по форме объект с рисунком. В настоящем же проекте будет перемещаться сама форма проекта по экрану.

Начните новый проект. На этапе визуального проектирования задайте свойство формы Name значением fmMyForm, свойства Width и Height значением 350 пикселов. Модуль проекта назовем Third.pas. Имя проекту дадим – prMoveMyForm.

    1. ^ Завершение работы проекта

Поместим на форму проекта сначала кнопку, по щелчку по которой программа будет завершать свою работу. Назовем ее btExit, свойство Caption зададим значением «Выход». В код поместим строку, с помощью которой пользователь предупреждается о завершении работы программы:

^ Application.MessageBox ('Приложение завершает работу','Выход',mb_iconStop);

А с помощью следующий строки приложение завершает работу:

Application.Terminate ;

Таким образом код кнопки будет следующий:

procedure TfmMyForm.btExitClick(Sender: TObject);

begin

Application.MessageBox ('Приложение завершает работу','Выход',mb_iconStop);

Application.Terminate ;

end;

Если теперь пользователь щелкнет по кнопке с надписью «выход», сначала перед ним появится окно сообщения:



После того, как он щелкнет по кнопке “OK”, работа завершится.

    1. ^ Кнопки для перемещения формы по экрану

Чтобы перемещать нашу форму в углы и в центр экрана, поместим на форму проекта пять командных кнопок, зададим для них необходимые свойства на стадии проектирования и сразу же составим для них код.

Первую кнопку, которая должна перемещать нашу форму в левый верхний угол экрана, разместим в левой верхней части формы и назовем (свойству Name присвоим значение) btLeftUp. Свойство Caption зададим значением «ВлевоВверх».

Форма, как и любой другой видимый объект, обладает свойствами Top и Left. Чтобы по щелчку левой кнопкой мыши пользователя форма перемещалась в левый верхний угол экрана, свойствам Top и Left формы должны присваиваться нулевые значения.

procedure TfmMyForm.btLeftUpClick(Sender: TObject);

begin

fmMyForm.Top :=0;

fmMyForm.Left :=0;

end;

Разместим на форме вторую командную кнопку, по щелчку по которой пользователь должен переместить форму в правый нижний угол. Назовем ее (свойству Name присвоим значение btRightUp, свойство Caption зададим значением «ВправоВниз».

Щелчок по кнопке должен перемещать форму в правый угол экрана. Воспользуемся для составления соответствующего кода свойством Width объекта Screen и аналогичным свойством формы:

fmMyForm.Left := Screen.Width – fmMyForm.Width

Щелчок по кнопке должен кроме того перемещать форму в нижний угол экрана. Воспользуемся для составления соответствующего кода свойством Height объекта Screen и аналогичным свойством формы:

fmMyForm.Top := Screen.Height – fmMyForm.Height

Целиком код для этой кнопки будет выглядеть следующим образом:

procedure TfmMyForm.btRightDownClick(Sender: TObject);

begin

fmMyForm.Left := Screen.Width - fmMyForm.Width;

fmMyForm.Top := Screen.Height - fmMyForm.Height;

end;

Третью командную кнопку, щелчком по которой пользователь должен переместить форму в левый нижний угол, назовем btLeftDown. Значение свойства Caption – «ВлевоВниз». Код для этой командной кнопки составьте самостоятельно.

procedure TfmMyForm.btLeftDownClick(Sender: TObject);

begin


end;

Щелчок по четвертой командной кнопке должен переместить форму в правый верхний угол. Значение свойства Name у нее – btRightUp, значение свойства Caption – «ВправоВверх». Код составьте самостоятельно.


procedure TfmMyForm.btRightUpClick(Sender: TObject);

begin


end;

Щелчок по пятой командной кнопке, которую мы разместим в центре формы, должен перемещать форму в центр экрана. Назовем ее btCenter, свойству Caption присвоим значение «Центр». Дополните код:

procedure TfmMyForm.btCenterClick(Sender: TObject);

begin

fmMyForm.Left := (Screen.Width - fmMyForm.Width) div 2;

end;

Вот приблизительно как может выглядеть форма после наших преобразований:



    1. ^ Кнопки, изменяющие вид указателя мышки

Поместим на форму еще четыре кнопки, которые будут задавать различные формы мышки.

Первую кнопку назовем btHandPoint. Пусть щелчок по этой кнопке задает вид указателя мышки crHandPoint. Свойство Caption зададим значением Ok, а над кнопкой на форме поместим метку, у которой в свойстве Caption будет значение «курсор crHandPoint».





Код кнопки будет следующий:

procedure TfmMyForm.btHandPointClick(Sender: TObject);

begin

Screen.Cursor := crHandPoint;

end;

Вторую кнопку назовем btMultiDrag Пусть щелчок по этой кнопке задает вид указателя мышки crHandPoint. Свойство Caption зададим значением Ok, а над кнопкой на форме поместим метку, у которой в свойстве Caption будет значение «курсор crMultiDrag». Составьте самостоятельно код кнопки:

procedure TfmMyForm.btMultiDragClick(Sender: TObject);

begin


end;

Третью кнопку назовем btHourGlass. Пусть щелчок по этой кнопке задает вид указателя мышки crHandPoint. Свойство Caption зададим значением Ok, а над кнопкой на форме поместим метку, у которой в свойстве Caption будет значение «курсор crHourGlass». Составьте самостоятельно код кнопки:

procedure TfmMyForm.btHourGlassClick(Sender: TObject);

begin


end;

Четвертую кнопку назовем btHelp. Пусть щелчок по этой кнопке задает вид указателя мышки crHelp. Свойство Caption зададим значением Ok, а над кнопкой на форме поместим метку, у которой в свойстве Caption будет значение «курсор crHelp». Составьте самостоятельно код кнопки:

procedure TfmMyForm.btHelpClick(Sender: TObject);

begin


end;

После всех преобразований форма примет следующий вид:



Приложение готово. Запустите его, исправьте ошибки, если они есть, сделайте дополнения, какие вам хочется.

  1. Задания

Сделайте проект, описанный в пункте 4 настоящего занятия.






Схожі:

Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера iconЗанятие 2 Понятиe свойств в Delphi. Приложение, в котором изображение перемещается по форме за счет изменения значений егосвойств
Обсуждаются способы задания значений этих свойств. Слушатель знакомится с компонентом Image и его свойствами. Слушатель делает приложение...
Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера iconЗанятие 1 Первое знакомство с delphi, первое приложение в Delphi
При этом знакомится и работает с такими компонентами, как метка и командная кнопка, составляет процедуру обработки события OnClick...
Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера iconТема основные концепции ооп (4 часа). Объекты и классы. Отношения между классами и наследование свойств. Многообразие свойств и полиморфизм
Объекты и классы. Отношения между классами и наследование свойств. Многообразие свойств и полиморфизм
Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера iconЛекция Клиентские сценарии и приложения. Как правило, Веб-приложение приложение, в котором клиентом выступает браузер, а сервером веб-сервер
Как правило, Веб-приложение приложение, в котором клиентом выступает браузер, а сервером веб-сервер
Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера iconЗанятие 10 Работа с массивами в Delphi, использование компонентов ListBox и ComboBox при работе с массивами
Рными массивами. Кроме этого, рассматривается вопрос о доступе к объектам, объявленным в одном модуле из других модулей. Совместно...
Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера iconЗанятие 5 Знакомство с компонентами MediaPlayer и OpenDialog. Музыкальное оформление приложений, созданных в Delphi

Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера icon1. основные концепции ооп (4 часа)
Объекты и классы. Отношения между классами и наследование свойств. Многообразие свойств и полиморфизм
Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера iconЗанятие 11 Анимация
Используя рассмотренный в предыдущих занятиях материал и поняв принципы анимации, рассмотренные в настоящем занятии, слушатель совместно...
Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера iconЗанятие 7 «Типы данных в Delphi, постоянные и переменные величины»
...
Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера iconЗанятие 12 «Проект Кроссворд на Delphi» Проект «кроссворд»
Используя знания, которые вы получили, выполняя последовательно задания предшествующих занятий сделаем проект «кроссворд»
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©on2.docdat.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи