КАТЕГОРИИ: Архитектура-(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'); 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 и преобразовать ее в число; • выполнить сложение этих чисел; • полученный числовой результат преобразовать в текст и этот текст по Примем, что в данном случае будем работать с целыми числами. Решим проблему ограничения ввода только цифр. Этого можно достичь, если задать обработчик событий 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; Просмотров: 394; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |