Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

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



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

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

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

В объектно ориентированных языках, к числу которых относится 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;

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

Объект 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 можно размещать в окне сообщения другие кнопки и пиктограммы.

3. Объект 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

 

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

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

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

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

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.