Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Finalization




Initialization

Procedure

Begin

Procedure

Implementation

Interface

Uses {Подключаемые модули}

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

Type {Объявления типов используемых переменных} TForm1 = class(TForm)

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

procedure Button1Cliclc(Sender: TObject);

procedure Button2Click(Sender: TObject);

end;

var {Объявления переменных}

Form1: TForm1; F: TextFile; S: String;

{$R *.DFM} {Загрузка файла ресурсов формы}

ТForm1.Button1Click(Sender: TObject);

S:=Edit1.Text; {Чтение строки S}

Edit1.Text:='';

end;

TForm1.Button2Click(Sender: TObject); begin

Close; end;

AssignFilefF,'Myfile.txt');
Rewrite (F); {Открытие файла}

WriteLn(F,S); {Запись в файл строки S}

 

 


 

{Закрытие файла}

CloseFile(F); end.

Текст этой программы записывается в файл Unit1.pas, автоматически создается файл ресурсов для формы, который будет иметь имя Unit1.dfm.

Данная программа открывает файл Myfile.txt и записывает туда строку S, которая вводится с клавиатуры, используя объект Edit1.

Структура DLL будет описана далее.

При запуске приложения на выполнение сначала формируется выпол­няемый файл. Этот процесс делится на две стадии. Во-первых, компилятор транслирует исходный текст кода программы и формирует двоичный объ­ектный код (в частности, создается файл Unit1.dcu для откомпилированных файлов Unit1.pas и Unit1.dfm в данном случае). Во-вторых, компоновщик связывает полученный объектный код со встроенными библиотечными объ­ектными кодами модулей. В результате создается исполняемый файл, в дан­ном случае Project1.exe.

ПРИМЕР ПРИЛОЖЕНИЯ 1

Создадим приложение, выполняющее какие-либо "полезные" действия. Для этого продолжим работу над проектом, форма которого представлена т рис. 11. Пусть приложение будет выполнять сложение двух чисел: s=a+b. Создадим форму, приведенную на рис. 13.

Рис. 13

В данном проекте использовались два новых компонента TLabel и TEdit (по сравнению с рис. 11). Компонент TLabel позволяет отобразить статиче­ский, нередактируемый текст. Используя этот компонент, задают заголовки для других интерфейсных элементов. Текст заголовка вводится с помощью инспектора объектов (свойство Caption). Если свойство AutoSize равно "True", то размер компонента динамически изменяется в зависимости от размера текста. Дня того чтобы текст располагался в нескольких строчках, нужно свойству Wordwrap задать True.

Компонент TEdit понадобился для создания полей ввода. С помощью этого компонента строятся строки редактирования - прямоугольные окна, в


которых возможен ввод и редактирование текста. TEdit - однострочный редактор. Этот редактор содержит свойство Text, с помощью которого можно передавать данные внутрь приложения. Числа вводятся в виде текста, полученный текст программно преобразуется в числа с помощью функций преобразования. Окончание ввода осуществляется путем передачи фокуса другому компоненту, используя нажатие клавиши Tab. Если свойству ReadOnly задать значение True, то можно запретить ввод данных в данное по­ле ввода и использовать компонент TEdit для вывода результатов расчетов.

В качестве события, инициализирующего выполнение сложения, выбе­рем нажатие на первую кнопку Button1 (кнопка "Расчет"). Выберем подхо­дящее встроенное для кнопки Button1 событие - событие OnCIick.

В рассматриваемом примере используются Label1, Label2, LabeI3, Edit1, Edit2, Edit3, Button1, Button2. Так как вводятся числа, то первона­чально в свойстве Text интерфейсных элементов Edit1 и Edit2 нужно удалить с помощью инспектора объектов имеющийся текст. Далее необходимо за­дать свойство TabOrder для всех элементов - оно задает порядок "обега-ния" всех объектов на форме с помощью клавиши Tab. После запуска при­ложения фокус должен быть на Edit1. Поэтому необходимо задать свойство TabOrder для элемента Edit1 равным 0. Для Edit2 свойство TabOrder необхо­димо задать равным 1, Button1 - 2, Button2 - 3.

Далее запрограммируем обработчик события на нажатие кнопки " Рас­чет". Для этого в редакторе кода необходимо "вызвать" заготовку требуемо­го обработчика. Заготовка события OnCIick в редакторе кода будет сгенери­рована, если выполнить двойной щелчок с помощью левой клавиши мыши на элементе Button1. Между begin и end нужно написать код обработки со­бытия, выполняющий следующее:

• взять строку Edit1. Text и преобразовать ее в число;

• взять строку Edit2. Text и преобразовать ее в число;

• выполнить сложение этих чисел;

• полученный числовой результат преобразовать в текст и этот текст по­
местить в свойство Edit3. Text для отображения на экране дисплея.

Примем, что в данном случае будем работать с целыми числами. Решим проблему ограничения ввода только цифр. Этого можно достичь, если задать обработчик событий OnKeyPress. Этот обработчик обрабатывает каждое нажатие клавиши на клавиатуре при вводе текста (в данном случае чисел). Таких обработчиков нужно два: для Edit1 и Edit2.

Вначале сформируем обработчик OnKeyPress для Edit1. Для этого необ­ходимо выполнить следующее: мышью выбрать Edit1 на форме, в инспекто­ре объектов перейти на страницу событий (Events), выбрать OnKeyPress и выполнить двойное нажатие левой кнопкой мыши в поле справа от названия события. Появится редактор кода, в котором будет заготовка нужного обра­ботчика. Введем текст:


 



 


If not (key in [‘O'..'9']) then Key:=#0;.

Этот оператор "отсеет" все символы, кроме цифр. Фактически этот об­работчик исполняет роль фильтра, заменяя введенные нецифровые символы на самый первый символ (#0) из таблицы ASCII, который не имеет графиче­ского начертания.

Теперь сформируем обработчик OnKeyPress для Edit2. Так как он будет таким же, что и для Edit 1, поступим следующим образом. Выберем Edit2, перейдем на страницу событий в инспекторе объектов, мышью выберем OnKeyPress (справа в этой строчке будет стрелка). Мышью нажмем на стрелку - появится в окошке строка Edit1KeyPress. Выберем мышью эту строку - один обработчик события OnKeyPress будет работать на два эле­мента Edit1 HEdit2.

Ниже приведен полный текст модуля Unit1.

unit Unit1;

interface

uses

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

type

TForm1 = class(TForm)

(Список используемых интерфейсных элементов}

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject;

var Key: Char);

end;

var Form1: TForm1;

implementation

{$R *.dfm}

{Программные коды используемых обработчиков событий} procedure TForm1.Button1Click(Sender: TObject);

begin

Edit3.Text:=IntToStr(StrToInt(Edit1.Text)+

StrToInt(Edit2.Text));

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Close;

 


end;

procedure TForm1.Edit1KeyPress(Sender: TObject;

var Key: Char);

begin

if not (key in [‘O'..'9', '-',#8]) thenkey:=#0;

end; end.

В обработчике OnKeyPress фильтр был расширен, чтобы появилась воз­можность ввода следующих дополнительных символов: '-', #8 (Backspace).

Самым замечательным в приведенной выше программе является то, что разработчик должен набрать всего три строки - это строки между begin и end в трех обработчиках событий.




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 373; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.