Читать книгу Программирование на Delphi 7 (Сергей Николаевич Талипов) онлайн бесплатно на Bookz
bannerbanner
Программирование на Delphi 7
Программирование на Delphi 7Полная версия
Оценить:
Программирование на Delphi 7

3

Полная версия:

Программирование на Delphi 7

Сергей Талипов

Программирование на Delphi 7

ЛЕКЦИЯ № 1

1. ВВЕДЕНИЕ В ВИЗУАЛЬНЫЙ ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ЯЗЫК “DELPHI”

Язык программирования «Делфи» является языком программирования высокого уровня, предназначается для создания 32-х битных высокоскоростных приложений (программ ) под операционную среду Windows. Язык программирования «Делфи» произошел от языка Borland Pascal 7.0 with Objects 7.0 и Turbo Pascal 7.0 for Windows. Языки программирования бывают следующие:


Язык программированияНе визуальныйВизуальныйНизкого уровняAssemblerVisual AssemblerСреднего уровняC++C++ BuilderВысокого уровняBasic, PascalVisual Basic, Delphi

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

В операционной среде Windows вместо слова “программа” используется его синоним – “приложение”. Приложение Windows состоит из одного или нескольких окон. Каждое окно состоит из формы (“пустого окна”) и компонент на ней.

При визуальном программировании программист, как архитектор, берет пустой “холст” (форму), выбирает из палитры компонент нужные “кирпичики” (компоненты), подгоняет форму каждого кирпичика под нужный замысел через Инспектор объектов, после чего связывает все кирпичики в единое целое с помощью Редактора кода.

Для запуска системы программирования “Делфи” необходимо в Windows нажать кнопку «Пуск» и в появившемся меню выбрать «Borland Developer Studio 2006 | Turbo Delphi». После выполнения данной команды запустится компилятор «Делфи» вместе с визуальной средой разработки приложений. На рис. 1 и рис 2 показано расположение основных элементов среды программирования «Делфи».

Главное окно программы {1} является основным окном «Делфи». При его закрытии работа с «Делфи» прекращается, т.е. закрытие данного окна эквивалентно команде выхода. Окно формы приложения {2} – это графический «холст», на котором программист наносит нужные ему визуальные компоненты. Визуальные компоненты {8} располагаются в так называемой Палитре компонент {7}.

После нанесения на окно формы нужных компонент (из палитры) программист настраивает (конфигурирует) каждый выбранный компонент с помощью окна Инспектора объектов {4}. Окно Инспектора объектов позволяет каждому компоненту установить нужный размер, цвет, местоположение на форме и др.

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

Для запуска готовой программы, вызова справки помощи, выхода из «Делфи» и др. служит Основное меню «Делфи» {5}. Наиболее часто используемые опции Основного меню продублированы кнопками быстрого доступа {6}. Нажатие на какую-либо кнопку быстрого доступа эквивалентно выбору соответствующего пункта Основного меню.

Любая программа на Делфи сохраняется на жестком диске компьютера в виде многих файлов. Для разных программ имена файлов могут совпасть, что приведет к их разрушению. Поэтому для каждой программы «Делфи» необходимо создавать свой каталог и в нем ее сохранять после завершения работы с «Делфи».

рис. 1

Обозначения:

1 – главное окно

2 – окно формы приложения (программы)

3 – окно кода программы

4 – окно инспектора объектов

5 – основное меню «Делфи»

6 – пиктографические кнопки быстрого к опциям основного меню

7 – палитра компонент

8 – визуальные компоненты

рис. 2

2. ПРИМЕР ПРОСТЕЙШЕЙ ПРОГРАММЫ В «ДЕЛФИ»

Рассмотрим в качестве примера задачу решения квадратного уравнения. Для этого на форму нужно поместить пять компонент типа «Edit», два компонента «Label» и одну кнопку «Button». Процедура для кнопки будет иметь следующее содержание:

procedure TForm1.Button1Click(Sender: TObject);

 var a,b,c,d,x1,x2: real; // Описание внутренних переменных

begin // Начало процедуры

try // Начало защищенного блока

  a:=strtofloat(Edit1.text); // Считываем данное «a»из визуального компонента «Edit1»

  b:=strtofloat(Edit2.text); // Считываем данное «b» из визуального компонента «Edit2»

  c:=strtofloat(Edit3.text); // Считываем данное «c» из визуального компонента «Edit3»

  d:=b*b-4*a*c; // Находим дискриминант

  x1:=(-b+sqrt(d))/(2*a); // Находим первый корень

  x2:=(-b-sqrt(d))/(2*a); // Находим второй корень

  Label1.caption:=floattostr(x1); // Загружаем «x1» в визуальный компонент «Label1»

  Label2.caption:=floattostr(x2); // Загружаем «x2» в визуальный компонент «Label2»

except // Начало секции обработки ошибок защищенного блока

  showmessage('Ошибка! Нет решения.'); // Выдача окна-сообщения на экран

end; // Конец защищенного блока

end; // Конец процедуры «Button1Click»

ЛЕКЦИЯ № 2

1. ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ “DELPHI”

Основное меню языка программирования «Делфи» предназначается для интерактивного создания, отладки и сохранения программ. Опции основного меню располагаются в основной горизонтальной части меню и в вспомогательных выпадающих подменю. Наиболее частые используемые опции меню продублированы кнопками быстрого доступа.

В языке программирования «Делфи» создаваемые приложения называются «проектами», т.о. слова «программа», «приложение» и «проект» можно считать синонимами.

Приложение «Делфи» состоит из файла проекта (с расширением «DPR») и подключаемых к файлу проекта модулей (с расширением «PAS»). Файл проекта служит для связывания модулей в единое целое и их активизации. Каждый модуль является либо обычным модулем, как и в языке PASCAL, либо модулем-формой со специальной структурой. Модуль-форма со специальной структурой использует файл с расширением «DFM» и является программной реализацией формы (окна) приложения. В служебном файле с расширением «DFM» хранится перечень компонент формы с их характеристиками и параметрами (положение на форме, размеры, цвет и др.), а в основном файле с расширением «PAS» хранятся процедуры-обработчики и функции данного окна (процедуры обработки нажатия на кнопки окна, процедуры закрытия окна и т.д.). При создании, например, приложения с двумя окнами будут получены 6 файлов: “Project1.dpr, Project1.res, Unit1.pas, Unit1.dfm, Unit2.pas, Unit2.dfm”.

Для корректного сохранения приложения его необходимо записывать в отдельный каталог диска, должно соблюдаться правило: “каждому приложению – свой каталог”.

2. ОСНОВНЫЕ ОПЦИИ DELPHI

FILE – опции работы с файлами

New Application – создание нового проекта (программы);

New Form – создание новой формы (окна);

Open – открытие формы или модуля;

Open Project – открытие проекта;

Reopen – открытие раннее открывавшегося приложения;

Save – сохранение формы или модуля на диске;

Save As – сохранение формы или модуля под другим именем;

Save Project As – сохранение проекта под новым именем;

Save All – сохранение всех редактируемых файлов проекта;

Close-закрыть текущее окно;

Close All – закрыть все редактируемые окна проекта;

Exit – выход из программы «Делфи»;

EDIT – опции редактирования

Undo – отмена последнего изменения по удалению, вставки и т.п.;

Redo – отмена команды «Undo»;

Cut – удаление выделенного текста или компонента в буфер;

Copy – копирование в буфер выделенного текста или компонента;

Paste – вставка из быфера текста или компонента;

Delete – удаление выделенного текста или компонента;

 SEARCH – опции поиска

Find – поиск заданного фрагмента текста;

Replace – поиск заданного фрагмента текста с заменой;

Search Again – продолжение поиска или поиска с заменой

VIEW – опции просмотра

Object Inspector (клавиша F11) – показывает окно Инспектора объектов на экране;

Toggle Form /Unit (клавиша F12) – переключает активность из окна формы в окно кода программы и обратно;

Units – показывает окно модулей проекта;

Forms – показывает окно форм проекта;

PROJECT – опции управления проектом

Add to Project – добавляет файл к проекту;

Remove From-Project – удаляет файл из проекта;

View Source – показывает окно кода проекта;

Complete Project (клавиша Ctrl + F9, проверка ошибок в программе) – компилирует измененные модули проекта и создает EXE-файл;

Build Project – компилирует все модули проекта и создает EXE-файл;

RUN – опции компиляции и запуска программ

Run (клавиша F9) – компилирует измененные модули проекта, создает EXE-файл и запускает приложение на выполнение;

HELP – опции вызова помощи и справочных данных

Contends (клавиша F1) – вызов справочной службы «Делфи»;

3. ОТЛАДКА ПРОГАММЫ DELPHI

Для отладки программы на «Делфи» необходимо проделать следующее:

Установить точку остановки. Для этого нужно щелкнуть слева от текста в окне кода программы на первом отлаживаемом операторе. Появится красная точка и полоска, указывающая на установку точки остановки. Снятие точки остановки происходит аналогичным образом.

Запустить программу, например нажав клавишу клавиатуры «F9» и подождать, пока она остановиться на точке остановки.

Нажатие клавиши клавиатуры «F8» вызовет выполнение одного следующего оператора программы без захода в подпрограммы, а нажатие на клавишу «F7» вызовет выполнение одного следующего оператора с заходом в подпрограммы, если они есть.

Нажатие клавиш «F8» или «F7» нужно производить столько раз, пока программа не перейдет на нужный оператор (об этом можно судить по специальному синему курсору трассировки с зеленой стрелочкой).

После установки курсора трассировки на нужном месте программы можно посмотреть значение переменных, указав на них мышью. Рядом с курсором мыши появится ярлычок с текущим значением переменной.

После просмотра значений переменных нужно вновь нажать на кнопку запуска «F9» для обычного продолжения хода выполнения программы.

4. МЕТОДЫ, СОБЫТИЯ И МЕТОДЫ В DELPHI

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

Переменная := Имя_компонента . Имя_Свойства ;

S:=Edit1.text; k:=strtoint(Edit1.text);

Имя_компонента . Имя_Свойства := Переменная_или_константа ;

Edit1.text:=inttostr(k); Form1.Caption:=’Delphi’;

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

Каждое событие компонента обрабатывается специальной процедурой, называемой процедурой -обработчиком события. Процедуры обработчики создаются через Инспектор Объектов (для привязки пустой процедуры – обработчика к конкретному событию) и Инспектора Кода (в котором программист вписывает нужные команды в пустую процедуру – обработчик). Написание процедур – обработчиков событий является основной частью создания программного продукта на «Делфи». Другую часть времени программист тратит на создание интерфейса программы, ее доработку и тестирование.

Методы компонента – это команды, которые имеет данный компонент. Методы бывают двух типов: методы-процедуры и методы-функции. Через методы программист «просит» компоненты сделать то или иное действие с самим собой. Например, у формы (окна) можно попросить закрыться или открыться, переместится по экрану. У компонента «TMemo» (текстового редактора) – можно попросить сбросить введенный пользователем в него текст на диск, или попросить очистку окна редактирования. Методы вызываются из обработчиков событий как обычные команды, например «begin memo1.Clear; end;» – «просим» компонент «Memo1» очистить окно ввода.

Имя_компонента . Имя_Метода_Процедуры (возможные параметры) ;

Form1.Show; Form1.Close; Edit2.SetFocus;

Переменная := Имя_компонента . Имя_Метода_Функции (возможные параметры) ;

f:=Edit2. CanFocus; if f=false then Edit2.SetFocus;

Для привязки к компоненту обработчика какого-либо события необходимо выделить его мышью, в Инспекторе Объектов перейти во вкладку «Events/События», выбрать нужное событие и дважды щелкнуть мышью в пустую ячейку напротив него. В появившейся процедуре необходимо написать код обработчика данного события.

Для установки одновременно какого-либо свойства у нескольких компонент необходимо выделить их мышью в охватывающий четырехугольник, после чего в Инспекторе Объектов задать нужное значение нужному общему свойству.

Для точного расположение компонента по центру на форме можно вызвать для него вспомогательное меню правой кнопкой мыши и выбрать пункт «Align». Для настройки правильной работы клавиши «Tab» (обхода фокуса ввода) выберете пункт «TabOrder» во вспомогательном меню.

Фокус ввода – это специальный графический курсор, показывающий, в какой компонент будут вводиться данные с клавиатуры, а также показывающий, какой компонент будет активизирован при нажатии клавиши «Enter» или клавиши «Пробел».

ЛЕКЦИЯ № 3

1. ЭЛЕМЕНТЫ ЯЗЫКА, СТРУКТУРА ПРОГРАММЫ И МОДУЛЕЙ

Программа на языке «Делфи», как ранее было отмечено, состоит из файла проекта (файла с расширением «DPR») и одного или нескольких модулей (файлы с расширением «PAS»). Файл проекта создается и модифицируется «Делфи» автоматически, и вручную изменять его нельзя. Чтобы увидеть файл проекта нужно вызвать опцию основного меню «PROJECT | VIEW SOURCE». Рассмотрим подробно содержимое примерного файла проекта.

Рис. 3.1. Структура файла проекта

Обозначения:

1 – зарезервированное слово

2 – комментарии

3 – директивы компилятора

4 – имя программы (проекта)

5 – имя подключаемого модуля

6 – имя файла, в котором находится подключаемый модуль

7 – операторы проекта

8 – команда инициализации проекта (загрузки программы в операционную среду Windows, настройка внутренних системных переменных и др.)

9 – команда создания на экране окна (формы) с именем «FORM1»

10 – передача управления проекту

Любой модуль в языке «Делфи» имеет структуру, аналогичную структуре модулей в языке PASCAL. Рассмотрим общую структуру модулей «Делфи».

Рис. 3.2. Общая структура модуля

Обозначения:

1 – имя модуля

2 – зарезервированное слово

3 – секция интерфейсных объявлений, в которой описываются программные элементы (типы данных переменные, процедуры и функции), которые будут «видимы» другим программным модулям и проектам, использующих данный модуль

4 – секция реализации, в которой непосредственно находятся тексты процедур и функций модуля

Рассмотрим модуль «Делфи», описывающий форму (окно) с одной кнопкой.

Рис. 3.3. Структура модуля-окна «Делфи»

Обозначения:

1 – имя модуля

2 – имена используемых в данном модуле других модулей

3 – тип «Tform1» является потомком пустого Windows-окна типа «TForm». Тип «Tform1» дополняет родительский тип «TForm» кнопкой с именем «Buttom1» и одной процедурой «Button1Click» по обработке нажатия на данную кнопку

4 – перечень компонент окна (объектов, переменных, процедур и функций)

5 – переменные, «видимые» только в данном типе «Tform1» (окне «Form1»), и не видные в других модулях (окнах), использующих данный модуль

6 – переменные, «видимые» и в типе «Tform1» (окне «Form1»), и в других модулях (окнах), использующих данный модуль

7 – описание переменной-объекта «Form1» типа «Tform1», объявленного в разделе «Type»

8 – подключение ресурсного файла с данными о компонентах окна «Form1» (положение компонент на экране, их размер, цвет и др.)

9 – текст-реализация раннее описанной процедуры

Элементы программы – это неделимые части программы, а именно зарезервированные слова, идентификаторы, типы, константы, переменные, метки, подпрограммы (процедуры и функции) и комментарии. В языке «Делфи» все элементы программ совместимы с языком PASCAL сверху – вниз, т.о. все типы данных, операторы и операции, имеющиеся в PASCALе, доступны и в «Делфи».

ЛЕКЦИЯ № 4

1. ОСНОВНЫЕ ТИПЫ ДАННЫХ В «ДЕЛФИ»

Любые данные в «Делфи», как и в языке PASCAL, характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь данное, а также множество применимых к нему операций. Рассмотрим целые типы данных «DELPHI».


ТипДиапазон значенийФизический форматByte (B)0 .. 255 1 байт, без знакаWord (W)0 .. 65 535 2 байт, без знакаInteger (I)-2 147 483 648 .. 2 147 483 647 4 байт, со знакомCardinal 0 .. 2 1474836474 байт, без знака Shortint (S)-128 .. 1271 байт, со знакомSmallint -32 768 .. 32 767 2 байт, со знакомLongint (L)-2 147 483 648 .. 2 147 483 647 4 байт, со знакомLongWord 0 .. 4 294 967 2954 байт, без знака Int64-9E18 .. 9E188 байт, со знаком

Табл. 1. Целые типы

Для целых типов применимы следующие стандартные процедуры и функции.


ОперацияОписаниеФункцииAbs (X)Модуль числа XChr (B)Возвращает символ по его коду BHi (W)Возвращает старший байт аргумента WLo (W)Возвращает младший байт аргумента WOdd (L)Возвращает «TRUE», если аргумент W нечетныйRandom (W)Возвращает целое случайное число от 0 до W-1Sqr (X)Возвращает квадрат аргумента WSqrt (X)Возвращает квадратный корень аргумента WХ Div YВозвращает целую часть частного деления Х на Y ХХ Mod YВозвращает остаток частного деления Х на YПроцедурыRandomizeИнициализирует генератор случайных чиселSwap (W)Меняет местами байты в слове WDec (X)Уменьшает значение переменной X на единицуInc (X)Увеличивает значение переменной X на единицуПримечание: X-любой из целых типов, B-байт и т.д.

Табл. 2. Процедуры и функции для целых типов

Рассмотрим на примере перечисляемые типы.

Type TMonth=(Jan, Feb, Mar);

Var Month: tMonth;

Begin

      If Month=Feb then label1. Caption: =’февраль’;

      If Rred (Feb)=Jan then showmessage (‘Перед февралем идет январь, и это правильно.’);

     If Succ (Feb)=Mar then showmessage (‘После февраля идет март, и это верно!’);

End;

Type TMonth=(Jan, Feb, Mar);

Var month: tMonth; c: byte;

Begin

    For month := Jan to Mar do showmessage(inttostr(byte(month)));

    For month := Jan to Mar do showmessage(inttostr(ord(month)));

    For c := byte(Jan) to byte(Mar) do showmessage(inttostr(c));

End;

Рассмотрим на примере логические и символьные типы.

Var L: Boolean; { Описываем логический тип }

       C: Char; { Описываем символьный тип }

Begin

       L: = true; C: =’ %‘;

       If chr(C)>12 then C:=’$’;

       C:=chr(ord(C));

       L:=true;

       If not L then exit;

End;

5. Рассмотрим на примере ограниченный тип.

Var date: 1..31; digit:’0’..’9’;

        Month: 1..12;

Var c: byte; s: char;

Begin

   For c: =Low(date) to High(date) do showmessage(inttostr(c));

   For s: =Low(digit) to High(digit) do showmessage(s);

End;

Рассмотрим вещественные типы и стандартные функции для них.


ТипРанг значенийКол-во значащих цифрРазмер в байтахReal5.0 x 10^–324 .. 1.7 x 10^30815–168Single1.5 x 10^–45 .. 3.4 x 10^387–84Real482.9 x 10^–39 .. 1.7 x 10^3811–126Double5.0 x 10^–324 .. 1.7 x 10^30815–168Extended3.6 x 10^–4951 .. 1.1 x 10^493219–2010Comp–2^63+1 .. 2^63 –1 (только целые)19–208Currency–922337203685477.5808 .. 922337203685477.5807 (четыре знака п.з.)19–208

Табл. 3. Вещественные типы


ФункцияВозвращаемое значениеAbs (x) Абсолютная величина хCos (х)Косинус х (х выражается в радианах, а не в градусах)Sin(x) Синус хFrac(x)Дробная часть х (откидывается запитая и цифры перед ней)Int (х)Целая часть х. Несмотря на название, возвращает действительное значение (с плавающей запятой), т.е. просто устанавливает нуль в дробной частиТrunc (х)Целая часть х. В отличие от Int, возвращающей действительное значение, Trunc возвращает целое значениеЕхр (х) Экспоненциальная функция от хLn (х) Натуральный логарифм от хАгсТаn (х) Арктангенс хPi Число Пи (3.1416…)Round (х) Ближайшее к х целое значение. Возвращает значение целого типаSqr(x)Квадрат х, т.е. X*XSqrt (х)Квадратный корень от х

Табл. 4. Функции действительных типов

6. Рассмотрим строковые типы.

Var

        Sss: String[150]; // Короткая строка до 150 символов (максимум 255 символов)

        SsMax: ShortString ; // Короткая строка до 255 символов

        Str: String; // Длинная строка неограниченной длины

Begin

  Sss := ‘строка символов’;

  Sss [6] := ‘и’; // получится ‘строки символов’;

  SsMax := ‘12345’;

  Str:=Sss;

  If length (Str) > 3 then Str:= Str + SsMax;

End;


ФункцияОписаниеПроцедурыDelete (s, pos, len)Удаляет максимум len символов из строки s, начиная с позиции posInsert (sourse, tar-get, pos)Вставляет строку source в строковую переменную target, начиная с позиции posSetLength (s, newlen)Задает новую динамическую длину newlen строковой переменной sStr (x, s)Преобразует численное значение х в строковую переменную sVal (s, v, code)Преобразует строку s в соответствующее численное представление vФункцииConcat (sl, s2, s3)Возвращает последовательное соединение строк. Эквивалентно оператору sl+s2+s3Copy (s, pos, len)Возвращает подстроку длиной максимум len символов, начинающуюся в позиции pos строки sLength (s)Возвращает динамическую длину строкиPos (substring, s)Возвращает место первого вхождения подстроки substring в строку sStringOfChar (c,k)Возвращает строку из символа “c” с длиной в “k” символовStrToInt (s)Преобразует строку s в соответствующее целочисленное значениеStrToFloat (s)Преобразует строку s в соответствующее вещественное значениеIntToStr (x)Преобразует целочисленное значение х в строковую переменнуюFloatToStr (x)Преобразует вещественное значение х в строковую переменнуюAnsiUpperCase (s)Преобразует все буквы строки s в заглавныеAnsiLowerCase (s)Преобразует все буквы строки s в строчные

Табл. 5. Процедуры и функции строковых типов

ЛЕКЦИЯ № 5

1. ОСНОВНЫЕ СВОЙСТВА КОМПОНЕНТ (положение, размеры, оформление, курсор)

Все стандартные компоненты «DELPHI» имеют некоторые общие свойства. Рассмотрим их в следующей таблице.


СвойствоНазначениеNameИмя компонента (подобно описанию переменных в языке Pascal)LeftПоложение координаты X верхнего левого углаTopПоложение координаты Y верхнего левого углаWidthШирина компонентаHeightВысота компонентаCursorВид курсора (форма рисунка) мыши над компонентомVisibleВидимость компонента. Если равно False, то компонент невиден на форме (экране)EnabledДоступность компонента. Если равно “False”, то компонент нельзя выбрать мышью или ввести в него данные с клавиатурыColorЦвет компонента (фона)Caption (text)Текст на компоненте (его значение)FontФонт (цвет, размер, начертание) текста на компонентеFont.ColorЦвет текста в компонентеAligmentВид выравнивания текста на компоненте (влево, вправо, по центру)ReadOnlyЗапрещение изменения текста (если равно “False”) компонента во время выполнения программыTagЦелочисленная переменная для свободного использованияHintЗначение текста-ярлычка компонентаShowHintРазрешение (если равно “True”) показа на экране ярлычка компонентаPopupMenuПривязка вспомогательного меню, вызываемого нажатием правой кнопки мыши на компоненте
bannerbanner