Информатика и программирование
Расчётно-графическая работа
Оглавление
Цель....................................................................................................................................................................... 2
Задание................................................................................................................................................................. 2
Спецификация программы......................................................................................................................... 2
Варианты заданий........................................................................................................................................ 4
Порядок выполнения........................................................................................................................................ 8
Содержание отчета........................................................................................................................................... 8
Рекомендации к выполнению......................................................................................................................... 9
Основная литература..................................................................................................................................... 24
Цель
Сформировать практические навыки разработки приложений под Windows:
· проектирования программ методами структурного и процедурного программирования;
· реализации программного проекта средствами языка программирования Object Pascal в среде визуального программирования Delphi;
· тестирования программ.
Задание
Спроектируйте и реализуйте приложение под Windows, осуществляющее преобразование числа из одного формата «входного» в другой формат «выходной» в соответствии с приведённой ниже спецификацией. Входной и выходной форматы определены в варианте задания.
Спецификация программы
1. Программа работает в режиме диалога с пользователем. Вид форм приложений для вариантов с 1 по 14 представлен на Рисунок 1, для вариантов с 15 по 28 - на Рисунок 2, для варианта 29* на Рисунок 3, для варианта 30* на Рисунок 4.
2. Необходимо обеспечить возможность выхода из приложения и получения справки через главное меню главной формы приложения. Справку необходимо отображать в отдельном окне.
3. Ввод исходного числа, представленного во «входном» формате, производится только с помощью командных кнопок, расположенных на форме приложения. Для редактирования вводимого числа предназначены клавиши BackSpace (удалить крайний правый символ), Clear (очистить содержимое редактируемой строки).
4. Программа должна осуществлять контроль вводимого числа на соответствие заданному в варианте «входному» формату. При попытке ввода символа несоответствующего заданному формату вводимый символ должен игнорироваться.
5. Вычисление и вывод результата - числа, представленного в «выходном» формате, выполняется в компонент «статический текст» по нажатию клавиши с изображением символа «=».
6. Предусмотрите автоматическое удаление исходного числа и результата преобразования, когда начинается ввод следующего исходного числа.
7. В качестве «входного» и «выходного» форматов взяты десятичное и р-ичное представления действительного числа.
8. В вариантах 29*, 30* пункт Правка главного меню главной формы обеспечивает возможность:
· копировать число во «входном формате» из буфера обмена в приложение (команда Вставить);
· копировать число во «входном формате» в буфер обмена из приложения (команда Копировать);
· копировать число во «входном формате» в буфер обмена и удалить его из соответствующего поля приложения (команда Вырезать).
9. В варианте 29* повышенной сложности необходимо обеспечить автоматическое (без нажатия на кнопку «=») преобразование введённого десятичного числа в выбранную систему счисления при изменении системы счисления.
10. В варианте 30* повышенной сложности при изменении системы счисления необходимо обеспечить:
· автоматическое удаление ранее введённого р-ичного числа;
· сделать недоступными (Enabled = False) кнопки с изображением цифр, отсутствующих в выбранной системе счисления.

Рисунок 1. Главная форма приложения и окно справки для вариантов с 1 по 14.

Рисунок 2. Главная форма приложения и окно справки для вариантов с 15 по 28

Рисунок 3. Главная форма приложения, окно справки, меню Правка для варианта 29*

Рисунок 4. Главная форма приложения, окно справки, меню Правка для варианта 30*
Варианты заданий
1. Варианты заданий приведены в таблице 1. Номер вашего варианта задания определяется вашим порядковым номером в списке студентов группового журнала. Вы можете выполнить по вашему выбору вариант (29* или 30*) повышенной сложности вместо своего варианта.
Номер варианта | «входной формат» | «выходной формат» | Основание системы счисления р |
1 | 10 | р | 2 |
2 | 10 | р | 3 |
3 | 10 | р | 4 |
4 | 10 | р | 5 |
5 | 10 | р | 6 |
6 | 10 | р | 7 |
7 | 10 | р | 8 |
8 | 10 | р | 9 |
9 | 10 | р | 11 |
10 | 10 | р | 12 |
11 | 10 | р | 13 |
12 | 10 | р | 14 |
13 | 10 | р | 15 |
14 | 10 | р | 16 |
15 | р | 10 | 2 |
16 | р | 10 | 3 |
17 | р | 10 | 4 |
18 | р | 10 | 5 |
19 | р | 10 | 6 |
20 | р | 10 | 7 |
21 | р | 10 | 8 |
22 | р | 10 | 9 |
23 | р | 10 | 11 |
24 | р | 10 | 12 |
25 | р | 10 | 13 |
26 | р | 10 | 14 |
27 | р | 10 | 15 |
28 | р | 10 | 16 |
29* | 10 | p | 2..16 |
30* | p | 10 | 2..16 |
Таблица 1. Варианты заданий
Примечание. Здесь р означает, что число представлено в р-ичной системе счисления, а 10 – что число представлено в 10-ичной системе счисления. Варианты 29* и 30* - варианты повышенной сложности. В них пользователь может выбрать основание системы счисления из заданного диапазона от 2 до 16 во время работы приложения.
2. Для вариантов с 1 по 14 характеристики форматов следующие:
· «входной» формат - десятичное действительное число,
· «выходной» формат - р-ичное действительное число, где р - основание системы счисления, определяемое вариантом задания.
Входной формат состоит из четырёх полей и имеет следующий вид:
<знак><целое><разделитель><дробь>
Суммарное количество цифр n (n = i + f, здесь i - количество цифр в целой части, f - количество цифр в дробной части) в полях <целое> и <дробь> должно лежать в диапазоне 1 <= n <= N, где N = 12.
Поле <знак> является необязательным, оно может содержать символ «-» или быть пустым (знак плюс не вводится).
Поле <целое> является обязательным, оно должно содержать десятичное целое без знака, количество десятичных цифр в котором должно быть 1 =< i <= N (незначащие нули слева не вводятся, исключая случай, когда ноль в поле единственный).
Поле <разделитель> является необязательным, оно содержит символ «,», отделяющий целую часть числа от его дробной части.
Поле <дробь> является необязательным, оно может содержать десятичные цифры дробной части числа. Количество десятичных цифр в нём должно принадлежать диапазону 0 =< f <= N - 1.
Пример 1. Правильное представление десятичных чисел во «входном» формате для вариантов с 1 по 14.
0
0,
-2
2
-278945612325
278945612325
-0,01234567891
0,01234567891
123456,012345
12345678910,1
5,34
-0,2
Пример 2. Неправильное представление десятичных чисел во «входном» формате для вариантов с 1 по 14.
-0 знак перед числом 0
, отсутствует <целое> и <дробь>;
-, отсутствует <целое> и <дробь>;
-,123 отсутствует поле <целое>;
1471232123456 недопустимая длина (13 разрядов);
1471232,1234567 недопустимая длина (14 разрядов);
-0,256123456789012 недопустимая длина (16 разрядов).
3. Для вариантов с 15 по 28 характеристики форматов следующие:
· «входной» формат - р-ичное действительное число, где р - основание системы счисления, определяемое вариантом,
· «выходной» формат - десятичное действительное число.
Входной формат состоит из четырёх полей и имеет следующий вид:
<знак><целое><разделитель><дробь>
Суммарное количество цифр n (n = i + f, здесь i - количество цифр в целой части, f - количество цифр в дробной части) в полях <целое> и <дробь> должно лежать в диапазоне 1 <= n <= N, где N = 12.
Поле <знак> является необязательным, оно может содержать символ «-» или быть пустым (знак плюс не вводится).
Поле <целое> является обязательным, оно должно содержать р-ичное целое без знака, количество р-ичных цифр в котором должно быть 1 =< i <= N (незначащие нули слева не вводятся, исключая случай, когда ноль в поле единственный).
Поле <разделитель> является необязательным, оно содержит символ «,», отделяющий целую часть числа от его дробной части.
Поле <дробь> является необязательным, оно может содержать р-ичные цифры дробной части числа. Количество р-ичных цифр в нём должно принадлежать диапазону 0 =< f <= N - 1.
Пример 3. Правильное представление 3-ичных чисел во «входном» формате для вариантов с 15 по 28.
0,
0
-2
2
-210020212021
212021012122
-0,01221221211
0,012345678912
120012,012212
12001212201,1
1,2
-102,2101
Пример 4. Неправильное представление 3-ичных чисел во «входном» формате для вариантов с 15 по 28.
-0 знак перед числом 0
, отсутствует <целое> и <дробь>;
-, отсутствует <целое> и <дробь>;
-,121 отсутствует поле <целое>;
1201212121200 недопустимая длина (13 разрядов);
1221202,1201212 недопустимая длина (14 разрядов);
-0,200121202211012 недопустимая длина (15 разрядов).
Порядок выполнения
1. Спроектируйте программу и опишите проект с помощью схемы иерархии логических модулей (смотри Рисунок 5, Рисунок 6).
2. Поведение каждого логического модуля опишите с помощью HIPO-диаграммы.
3. Для каждого модуля разработайте блок-схему в соответствии с технологией структурного программирования.
4. Реализуйте проект на языке Object Pascal в следующем порядке:
· реализуйте модули преобразования формы представления числа;
· постройте интерфейс приложения в режиме визуального программирования;
· реализуйте модули ввода и редактирования;
· подключите модуль Преобразование представления числа к интерфейсу.
Физические модули реализуйте с помощью подпрограмм Object Pascal. Выберите метод тестирования, разработайте тестовые наборы данных и оттестируйте каждую подпрограмму.
5. Опишите реализацию программы с помощью схемы иерархии физических модулей.
6. Выберите метод тестирования, разработайте тестовые наборы данных и оттестируйте программу в целом.
Содержание отчета
1. Вариант задания.
2. Схема иерархии логических модулей.
3. HIPO-диаграмма для каждого модуля.
4. Блок-схема для каждого модуля.
5. Схема иерархии физических модулей.
6. Таблицу соответствия логических и физических модулей.
7. Наборы тестовых данных для тестирования каждого модуля и приложения в целом.
8. Текст программы на Object Pascal с комментариями.
9. Литература.
Рекомендации к выполнению
1. Для вариантов заданий с 1 по 14 схема иерархии логических модулей может выглядеть так, как показано на Рисунок 5. Для вариантов заданий с 15 по 28 - как показано на Рисунок 6.

Рисунок 5. Схема иерархии логических модулей приложения для вариантов с 1 по 14.

Рисунок 6. Схема иерархии логических модулей приложения для вариантов с 15 по 28.
Реализация приложения представлена
2. Пример 5, Пример 6, Пример 7, Пример 8. Соответствие между логическими и физическими модулями приведено в
Номер | Логический модуль | Физический модуль |
1 | Ввод/Вывод | function Edit(i: Integer;s: String): String; |
1.1 | Добавить знак | function Signe(s: String): String; |
1.2 | Добавить запятую | function Comma(s: String): String; |
1.3 | Добавить десятичную цифру | function Digits(p: integer;s: String): String; |
1.3.1 | Разрядов в числе | function LenNum(s: String): Cardinal; |
1.3.2 | Добавить ‘0’ | function AddZero(s: String): String; |
1.4 | Удалить число | function Clear: String; |
1.5 | Удалить символ справа | function Backspace(s: String): String; |
2 | Преобразование представления числа | function DoTransfer(S: String): String; |
2.1 | Перевод целого в р-ичную строку | function Int10ToP(r: Comp; b:Cardinal):String; |
2.1.1 | Перевод целого в р-ичный символ | function IntToPChar(d: Integer):String; |
2.2 | Перевод дроби в р-ичную строку | function Frac10ToP(f: Extended; b:Cardinal):String; |
Таблица 2. Соответствие между логическими и физическими модулями для вариантов с 1 по 14.
Номер | Логический модуль | Физический модуль |
1 | Ввод/Вывод | function Edit(i: Integer;s: String): String; |
1.1 | Добавить знак | function Signe(s: String): String; |
1.2 | Добавить запятую | function Comma(s: String): String; |
1.3 | Добавить р-ичную цифру | function Digits(p: integer;s: String): String; |
1.3.1 | Разрядов в числе | function LenNum(s: String): Cardinal; |
1.3.2 | Добавить ‘0’ | function AddZero(s: String): String; |
1.4 | Удалить число | function Clear: String; |
1.5 | Удалить символ справа | function Backspace(s: String): String; |
2 | Преобразование представления числа | function DoTransfer(S: String): String; |
2.1 | Перевод р-ичного целого в число | function StrPToInt(r: String; b:Cardinal):Comp; |
2.1.1 | р-ичный символ в число | function PCharToInt(d: Char):Cardinal; |
2.1.2 | Вес единицы разряда р-ичного целого | function StrPToInt(r: String; b:Cardinal):Comp; |
2.2 | Перевод р-ичной дроби в число | function StrPToFrac(f: String; b:Cardinal): Real; |
2.2.1 | Вес единицы разряда р-ичной дроби | function StrPToFrac(f: String; b:Cardinal): Real; |
Таблица 3. Соответствие между логическими и физическими модулями для вариантов с 15 по 28.
3. Форма приложения должна быть с неизменяемыми размерами и с кнопками управления размерами. Для этого в свойство BorderStyle формы установите значение bsSingle.
4. Для отображения вводимого числа и вывода результата используйте компонент «статический текст» (класс TstaticText на вкладке панели компонентов Additional).
Для обработки события OnClick (нажатие кнопки) для кнопок, с изображением цифр, знаков «-», «,» разработайте одну событийную процедуру ButtonClick, которую подключите к событиям OnClick каждой кнопки с помощью Инспектора объектов. Эту событийную процедуру вам необходимо описать самостоятельно, как показано в
5. Пример 5, Пример 7. Заголовок этой событийной процедуры может иметь вид, как показано в примерах ниже. Из примеров модулей форм исключён код подпрограмм, кроме событийной процедуры ButtonClick, оставлены только заголовки подпрограмм. Для того чтобы можно было различить нажатую кнопку, кнопки необходимо пронумеровать и номер кнопки поместить в свойство Tag c помощью инспектора объектов. Номера кнопок, изображающих цифры сделайте равными изображённым на них цифрам.
6. Для обеспечения возможности выхода из приложения и предоставления справки вставьте в форму главное меню (класс TmainMemu вкладки Standart панели компонентов). В меню вставьте два ниспадающих меню: Файл и Помощь. В меню Файл вставьте пункт Выход. В меню Помощь вставьте пункт Справка. Справочную информацию по работе с приложением поместите в компонент «многострочный редактор» (класс Tmemo вкладки Standart панели компонентов).
7. Добавьте подсказки к кнопкам управления (класс Tbutton). Для этого с помощью инспектора объектов поместите необходимое сообщение в свойство Hint компонента. В свойство ShowHint компонента занесите значение True.
8. Для завершения работы приложения используйте свойство Terminate объекта Application (смотри, Пример 7).
9. Для отображения и скрытия окна справки используйте свойства Show и Hide объекта формы (смотри, Пример 6, Пример 7, Пример 8).
10. Для работы с буфером обмена (варианты 29, 30) используйте свойство AsText глобального объекта ClipBoard (класс TClipBoard модуль Clipbrd. pas).
Например:
ClipBoard. AsText:= StaticText1.Caption
Копировать из буфера обмена в компонент StaticText1.
StaticText1.Caption := ClipBoard. AsText;
Копировать в буфер обмена из компонента StaticText1.
Пример 5. Исходный текст модуля главной формы для перевода числа из десятичного представления в 16-ричное (для вариантов с 1 по 14).
unit Unit1;
//Модуль главной формы для перевода числа из 10 системы счисления в р-ичную
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Mask, StdCtrls, ComCtrls, Menus, unit2, Clipbrd;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Label2: TLabel;
Label1: TLabel;
StaticText1: TStaticText;//Десятичное представление числа
StaticText2: TStaticText;//р-ичное представление числа
MainMenu1: TMainMenu;
N1: TMenuItem;//меню Файл
N2: TMenuItem;//пункт Выход меню Файл
N3: TMenuItem;//меню Помощь
N4: TMenuItem;//пункт Справка меню Помощь
procedure ButtonClick(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
const
accurancy = 20;//точность представления исходного числа
NumLen = 12;//суммарная длина целой и дробной частей исходного числа
var
Done: Boolean = False;//Имеет значение False при вводе и редактировании True -
//после нажатия клавиши "="
b: Cardinal = 16;//основание системы счисления
{$R *.DFM}
function Edit(i: Integer;s: String): String;
//Модуль Ввод/Вывод.
//Управляет вводом и редактированием
//числа s во «входном» формате. Управляющее значение i.
begin
case i of
0..9: result:= Digits(i, s);
10 : result:= Signe(s);
11 : result:= Comma(s);
12 : result:= Backspace(s);
13 : result:= Clear;
end;
end;
function Signe(s: String): String;
//Модуль Добавить знак.
//Изменяет знак вводимого числа s на противоположный.
function Comma(s: String): String;
//Модуль Добавить запятую.
//Добавляет запятую к вводимому числу s.
function Digits(p: integer;s: String): String;
//Модуль Добавить десятичную цифру.
//Добавляет десятичную цифру к вводимому числу.
function LenNum(s: String): Cardinal;
//Модуль Разрядов в числе.
//Вычисляет и возвращает суммарную длину полей <целое> и //<дробь>.
function AddZero(s: String): String;
//Модуль Добавить ‘0’.
//Добавляет '0' к вводимому числу s и возвращает результат.
function Clear: String;
//Модуль Удалить число.
//Очищает поле ввода, в котором хранится вводимое число.
function Backspace(s: String): String;
//Модуль Удалить символ справа.
//Удаляет символ справа во вводимом числе s.
function DoTransfer(S: String): String;
//Модуль Преобразование представления числа.
//Управляет переводом числа, вычисляет и возвращает результат.
function Int10ToP(r: Comp; b:Cardinal):String;
//Модуль Перевод целого в р-ичную строку.
//Осуществляет перевод целой части r в строку, содержащую её b-//ичное представление.
function IntToPChar(d: Integer):String;
//Модуль Перевод целого в р-ичный символ.
//Переводит цифру d в её строковое представление
//в системах счисления с основаниями от 2 до 16.
function Frac10ToP(f: Extended; b:Cardinal):String;
//Модуль Перевод дроби в р-ичную строку.
//осуществляет перевод дробной части f в строку, содержащую её b-//ичное представление.
procedure TForm1.ButtonClick(Sender: TObject);
//Управление вводом символов, командами редактирования и //вывода результата. Процедура вызывается при нажатии командных //кнопок на форме.
var p: Integer; s: String;
begin
if Done
then begin
StaticText2.Caption:= '';
StaticText1.Caption:= '';
Done:= False
end;
s:= StaticText1.Caption;
p:= (Sender as TButton).Tag;//p содержит значение свойства Tag кнопки, которая вызвала
//событие
case p of
14: begin StaticText2.Caption:= DoTransfer(s); Done:= True end;//Перевод
else StaticText1.Caption:= Edit(p, s)//Ввод и редактирование
end;
end;
procedure TForm1.N2Click(Sender: TObject);
//Вызывается при выборе пункта Файл|Выход
begin
Application. Terminate //Завершить приложение
end;
procedure TForm1.N4Click(Sender: TObject);
//Вызывается при выборе пункта Помощь|Справка
begin
Form2.Show //Показать окно справки
end;
end.
Пример 6. Исходный текст модуля Окно справки (Unit2) для перевода числа из десятичного представления в 16-ричное (для вариантов с 1 по 14).
unit Unit2;
//модуль Окно Справки
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;//Выход
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
//Вызывается при нажатии кнопки Выход
begin
Form2.Hide //Скрыть окно справки
end;
end.
Пример 7. Исходный текст модуля главной формы (Unit1) для перевода числа из 16-ричного представления в десятичное представление (для вариантов с 15 по 28).
unit Unit1;
//модуль главной формы для перевода числа из 16-ричной //системы счисления в 10-ичную
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Mask, StdCtrls, Menus;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Label2: TLabel;
Label3: TLabel;
Button16: TButton;
Button17: TButton;
Button18: TButton;
Button19: TButton;
Button20: TButton;
Button21: TButton;
StaticText1: TStaticText;//16-ричное представление числа
StaticText2: TStaticText;//десятичное представление числа
MainMenu1: TMainMenu;//Меню
N1: TMenuItem;//меню Файл
N2: TMenuItem;//меню Помощь
N3: TMenuItem;//пункт Выход меню Файл
N4: TMenuItem;//пункт Справка меню Помощь
procedure ButtonClick(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
const
b = 16; //основание системы счисления
// accurancy = 20; //точность представления исходного числа
NumLen = 12; //суммарная длина целой и дробной частей //исходного числа
var
// m: Set of Char;
Done: Boolean = False; //Имеет значение False при вводе и //редактировании, True - после нажатия клавиши "="
{$R *.DFM}
function Edit(i: Integer;s: String): String;
//Модуль Ввод/Вывод.
//Управляет вводом и редактированием
//числа s во «входном» формате. Управляющее значение i.
begin
case i of
0..15: result:= Digits(i, s);
16 : result:= Signe(s);
17 : result:= Comma(s);
18 : result:= Backspace(s);
19 : result:= Clear;
end;
end;
function Signe(s: String): String;
//Модуль Добавить знак.
//Изменяет знак вводимого числа s на противоположный.
function Comma(s: String): String;
//Модуль Добавить запятую.
//Добавляет запятую к вводимому числу s.
function Digits(p: integer;s: String): String;
//Модуль Добавить р-ичную цифру.
//Добавляет р-ичную цифру к вводимому числу.
function LenNum(s: String): Cardinal;
//Модуль Разрядов в числе.
//Вычисляет и возвращает суммарную длину <целое> и <дробь> //вводимого числа s
function AddZero(s: String): String;
//Модуль Добавить ‘0’.
//Добавляет '0' к вводимому числу s и возвращает результат.
function Clear: String;
//Модуль Удалить число.
//Очищает поле ввода, в котором хранится вводимое число
function Backspace(s: String): String;
//Модуль Удалить символ справа.
//Удаляет символ справа во вводимом числе s.
function DoTransfer(S: String): String;
//Модуль Преобразование представления числа.
//Управляет переводом числа, вычисляет и возвращает результат.
function IntToPChar(d: Integer):String;
//Модуль Р-ичный символ в число.
//Переводит р-ичную цифру в её строковое представление
//для систем счисления с основаниями от 2 до 16
function StrPToInt(r: String; b:Cardinal):Comp;
//Модуль Перевод Р-ичного целого в число.
//Переводит строку r, содержащую изображение р-ичного целого //в её числовое представление в с. сч. с основанием b.
function PCharToInt(d: Char):Cardinal;
//Модуль Р-ичный символ в число.
//Переводит символ, изображающий цифру в её числовое
//представление для систем счисления с основаниями от 2 до 16.
function StrPToFrac(f: String; b:Cardinal): Real;
//Модуль Перевод Р-ичной дроби в число.
//Переводит строку f, изображающую р-ичную дробь, в её
//числовое представление в с. сч. с основанием b.
procedure TForm1.ButtonClick(Sender: TObject);
//Управление вводом символов, командами редактирования и //вывода результата. Процедура вызывается при нажатии //командных кнопок на форме.
var p: Integer; s: String;
begin
if Done
then begin
StaticText2.Caption:= '';
StaticText1.Caption:= '';
Done:= False
end;
s:= StaticText1.Caption;
p:= (Sender as TButton).Tag;//p содержит значение свойства Tag //кнопки, которая вызваласобытие
case p of
20: begin StaticText2.Caption:= DoTransfer(s); Done:= True end;//Перевод
else StaticText1.Caption:= Edit(p, s);//Ввод и редактирование
end;
end;
procedure TForm1.N3Click(Sender: TObject);
//Вызывается при выборе пункта Помощь|Справка
begin
Form2.Show //Показать окно справки
end;
procedure TForm1.N4Click(Sender: TObject);
//Вызывается при выборе пункта Файл|Выход
begin
Application. Terminate //Завершить приложение
end;
end.
end.
Пример 8. Исходный текст модуля Окно справки (Unit2) для перевода числа из 16-ричного представления в десятичное представление (для вариантов с 15 по 28).
unit Unit2;
//Модуль Окно справки
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
//Вызывается при нажатии кнопки Выход
begin
Form2.Hide //Скрыть окно справки
end;
end.
Основная литература
1. Лингер, Х. Миллс, Б. Уитт. Теория и практика структурного программирования. - М.:Мир, 1982. - 406 с.
2. А.. Программирование на языке Турбо-Паскал 6.0, 7.0. - М.:Веста, Радио и связь,1993. - 384 с.: ил.
3. Фаронов. Основы Турбо-Паскаля 6.0. - М.:Учебно-инженерный центр “МВТУ-ФЕСТО ДИДАКТИК”, 1992. - 304 с.
4. Епанешников, В. Епанешников. Программирование в среде Turbo Pascal 7.0. - М.:”Диалог-Мифи”, 1993. - 288 с.
5. Зиглер. Методы проектирования программных систем. М.: Мир, 1985.-328с.
6. Марченко. Программирование в среде Borland Pascal 7.0. - К.: ВЕК, К.: ЮНИОР, 1996.- 480 с., ил.
7. П. Дарахвелидзе, Е. Марков. Программирование в Delphi 4. - СПб.:БХВ - Санкт-Петербург,1999.-864 с., ил.
8. А. И. Марченко. Программирование на языке Object Pascal 2.0. - К.: Юниор, 1998. - 304 с., ил.
9. Джон Матчо, Фолкнер. Delphi. М.: Бином. 1995. -464 с.
10. Петр Дарахвелидзе, Евгений Марков. Delphi - среда визуального программирования. СПб.: BHV - Санкт-Петербург, 1996. - 352 с.
11. Джеф Дантеман, Джим Мишел, Дон Тейлор. Программирование в среде Delphi. - К.: НИПФ «ДиаСофтЛтд», 1995. - 608 с.
Основные порталы (построено редакторами)
