- •Введение в конструирование программ
- •Пенза 2006 г.
- •Предисловие
- •1 Обработка информации на компьютере
- •1.1 Модель обработки информации на компьютере
- •1.2 Основные объекты языка программирования
- •1.2.1 Синтаксические элементы языка программирования
- •1.2.2. Значения и типы
- •1.2.3. Константы и переменные
- •1.2.4. Выражения
- •1.2.5. Операторы
- •1.3 Лабораторные задания
- •1.3.1 Логическая разминка
- •1.3.2 Реализовать схемы программ на языке Object Pascal
- •2 Структурное конструирование программ
- •2.1 Простая программа
- •2.2 Консольное приложение
- •2.2.1 Создание, сохранение и загрузка программы
- •2.2.2 Компиляция и выполнение программы
- •2.3 Лабораторные задания
- •2.3.1 Составление простых программ
- •2.3.2 Выполните трассировку и определите результаты работы программы
- •2.3.3 Программирование с использованием управляющих структур
- •2.4 Подпрограммы
- •2.4.1 Глобальные данные
- •2.4.2 Способы передачи параметров
- •2.4.3 Функции
- •2.4.4 Процедуры
- •2.4.5 Значения параметров по умолчанию
- •2.4.6 Перегрузка функций
- •2.4.7. Рекурсивные подпрограммы
- •2.4.8. Передача наименования подпрограммы как параметра
- •2.5 Отладка программ
- •2.6 Лабораторные задания. Подпрограммы
- •2.6.1 Конструирование подпрограмм
- •2.6.2 Разработка рекурсивных подпрограмм
- •2.7. Модули
- •Interface {интерфейс модуля}
- •Implementation {реализация}
- •Initialization {инициализация}
- •3. Структуры данных
- •3.1. Массивы
- •3.1.1. Действия над массивами
- •I, j : byte; { индексы элементов массивов }
- •3.1.2 Передача массивов в качестве параметров
- •3.1.2.1. Формальные параметры как массивы с фиксированными размерами
- •3.1.2.2. Формальные параметры как массивы со «свободными» размерами
- •3.1.2.3. Определение наименьшего/наибольшего значения массива
- •3.1.3 Лабораторные задания
- •3.1.3.1 Одномерные массивы
- •3.1.3.2. Двумерные массивы
- •3.2. Строки
- •3.2.1 Лабораторные задания
- •3.3. Записи
- •3.3.1 Лабораторные задания
- •3.4 Файлы.
- •3.4.1 Основные понятия и операции
- •3.4.2 Типизированные файлы
- •3.4.3 Текстовые файлы
- •3.4.4 Лабораторные задания
- •3.5 Динамические структуры данных. Указатели
- •3.5.1 Основные понятия и определения
- •3.5.2 Процедуры выделения и освобождения памяти
- •3.5.3 Односвязный список
- •3.5.4 Лабораторные задания. Указатели, список
- •3.5.5 Динамические массивы
- •4. Введение в объектно-ориентированное конструирование программ
- •4.1 Основные понятия и определения
- •4.2 Классы и объекты
- •4.2.1 Структура класса
- •4.2.2 Создание и уничтожение объектов
- •4.2.3 Пример. Класс – динамический массив
- •4.2.5 Операции с объектами
- •4.2.5.1 Оператор is
- •4.2.5.2 Оператор as
- •4.2.5.3 Копирование объектов одного класса
- •4.2.6 Свойства
- •4.2.7 Наследование и полиморфизм
- •4.2.8 События
- •4.2.9 Исключительные ситуации
- •4.2.9.1 Операторы try…except
- •4.2.9.2 Операторы try…finally
- •5. Визуальная разработка программ в delphi
- •5.1. Интегрированная среда разработки программ
- •5.1.1 Проект
- •5.2 Конструирование простого приложения
- •5.2.1 Интерфейс Пользователя
- •5.2.2 Визуальное конструирование
- •5.2.3 Реализация методов
- •5.2.4 Обработка исключительных ситуаций
- •5.2.5 Файлы приложения Калькулятор
- •5.3 Компоненты ввода/вывода данных StringGrid и Memo
- •5.3.1 Компонент StringGrid – таблица строк
- •5.3.1 Ввод массива. Компонент StringGrid
- •5.3.3 Компонент Memo – многострочное окно редактирования
- •5.3.4 Ввод массива. Компонент Memo
- •5.4 Немного о графике
- •5.4.1 Свойство Canvas. Построение графика функции
- •5.4.2 Событие OnPaint
- •Список литературы
- •Приложение а. Кратко о Delphi а.1 Свойства проекта
- •А.2 Программный код пустой формы
- •А.3 Главная форма
- •А.3.1 Свойства главной формы
- •А.3.2 События главной формы
- •А.4 Компоненты Delphi
- •Приложение b. Приложение «Калькулятор»
А.3.2 События главной формы
Рассмотрим основные события, на которые может реагировать главная форма приложения. События можно увидеть на закладке События Инспектора объектов.
События происходит в следующих случаях:
OnActivate – приложение стало активным
OnCanResize – перед тем, как изменить размер окна
OnClick – пользователь щелкнул по форме
OnClose – окно закрывается
OnCloseQuery – перед закрытием окна
OnCreate – окно создается
OnDblClick – Пользователь дважды щелкнул по окну
OnDeactivate – окно деактивируется
OnDestroy – окно уничтожается
OnHide – окно исчезает из виду
OnKeyDown – нажата клавиша на клавиатуре
OnKeyPress – нажата и отпущена клавиша на клавиатуре
OnKeyUp – отпущена клавиша на клавиатуре
OnMouseDown – нажата кнопка мыши
OnMouseMove – двигается мышка
OnMouseUp – отпускается кнопка мыши
OnMouseWheel – прокручивается колесико мыши
OnMouseWheelDown – колесико мыши прокручено вниз
OnMouseWheelUp – колесико мыши прокручено вверх
OnPaint – надо перерисовать окно
OnResize – надо изменить размеры окна
OnShortCut – нажата горячая клавиша
OnShow – показывается окно, но до фактической прорисовки. В этот момент окно уже создано и готово к отображению, но еще не прорисовалось на экране.
А.4 Компоненты Delphi
Палитра компонентов состоит из нескольких закладок:
Standard – все эти компоненты являются аналогами Windows компонентов.
Additional – дополнительные компоненты.
Win32 – компоненты, которые есть только в семействе Win32 операционных систем. В это семейство входят Windows 9x, Windows ME, Windows 2000, Windows NT, Windows XP.
System – системные компоненты, с помощью которых облегчается доступ к системе.
Database Access – компоненты доступа к базам данных.
Data Controls – компоненты для работы с базами данных.
dbExpress – еще компоненты доступа к базам данных, которые пришли на смену BDE.
BDE – старые компоненты доступа к базам данных.
ADO – это тоже компоненты для доступа к базам данных, только по технологии Active Data Object (ADO).
InterBase – компоненты доступа к базе данных InterBase.
WebServices – компоненты служб сети Internet.
InternetE xpress – компоненты доступа к сети Internet.
FastNet – сетевые компоненты.
QReport – компоненты для создания отчетов.
Dialogs – компоненты облегчающие доступ к стандартным диалогам.
Win3.11 – компоненты доступа к компонентам Win 3.1.
Samples – различные примеры. Некоторые из этих компонентов доступны в исходных кодах и поставляются вместе с Delphi.
Приложение b. Приложение «Калькулятор»
//Файл ProjectCalc.dpr
program ProjectCalc;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
//Файл UnitCalc.pas
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
EditOperand1: TEdit;
EditOperand2: TEdit;
EditResult: TEdit;
OperatorLabel: TLabel;
ResultLabel: TLabel;
BtnAdd: TButton;
Panel1: TPanel;
BtnMinus: TButton;
Button4: TButton;
Button5: TButton;
BtnClose: TButton;
Button1: TButton;
procedure BtnAddClick(Sender: TObject);
procedure BtnMinusClickk(Sender: TObject);
procedure BtnDivedeClick(Sender: TObject);
procedure BtnClearClick(Sender: TObject);
procedure BtnCloseClick(Sender: TObject);
procedure BtnMultClick(Sender: TObject);
procedure Operand1keyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.BtnAddClick(Sender: TObject);
begin
EditResult.Text:=
IntToStr(StrToInt(EditOperand1.Text)+
StrToInt(EditOperand2.Text));
OperatorLabel.Caption:='+';
ResultLabel.Caption :='=';
EditOperand1.SetFocus;
end;
procedure TForm1.BtnMinusClickk(Sender: TObject);
begin
EditResult.Text:=
IntToStr(StrToInt(EditOperand1.Text)-
StrToInt(EditOperand2.Text));
OperatorLabel.Caption:='-';
ResultLabel.Caption :='=';
EditOperand1.SetFocus;
end;
procedure TForm1.BtnDivedeClick(Sender: TObject);
begin
EditResult.Text:=
FloatToStr(StrToFloat(EditOperand1.Text)/
StrToFloat(EditOperand2.Text));
OperatorLabel.Caption:='/';
ResultLabel.Caption :='=';
EditOperand1.SetFocus;
end;
procedure TForm1.BtnClearClick(Sender: TObject);
begin
EditOperand1.Text :='' ;
EditOperand2.Text :='' ;
EditResult.Text :='' ;
OperatorLabel.Caption:='?';
ResultLabel.Caption :='?';
EditOperand1.SetFocus;
end;
procedure TForm1.BtnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TForm1.BtnMultClick(Sender: TObject);
begin
EditResult.Text:=
IntToStr(StrToInt(EditOperand1.Text)*
StrToInt(EditOperand2.Text));
OperatorLabel.Caption:='*';
ResultLabel.Caption :='=';
EditOperand1.SetFocus;
end;
procedure TForm1.Operand1keyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9', '-', chr(8): ;
chr(13) : EditOperand2.SetFocus;
else
key:=chr(0);
end;
end;
end.