Смекни!
smekni.com

Учебно-методическое пособие для студентов физико-математических специальностей вузов Балашов (стр. 4 из 18)

Теперь создадим два обработчика событий — нажатие клавиши, — для чего в инспекторе объектов на закладке Event выверим событие OnClick. В первой процедуре будем выполнять вычисления, а во второй — закрывать форму, используя следующий, заранее определенный метод — Form1.Close. Если правильно записать имя любого компонента, присутствующего на форме, или имя самой формы, то после символа «точка» появится список всех доступных на этапе выполнения свойств и методов. Свойства обозначаются служебным словом property, методами могут выступать функции и процедуры, и соответственно обозначаются словами procedure
и function. После выполнения данных операций, с добавлением необязательных комментариев, содержимое модуля Unit1.pas будет выглядеть так же, как представлено на рисунке 10.

Для ввода начальных данных и вывода конечных результатов могут использоваться различные компоненты. Например, компонент Edit, со страницы компонент Standard. Поместим два этих компонента на форму, которая примет вид, представленный на рисунке 11.

Рисунок 10

Рисунок 11

Компонент Edit имеет свойство Text типа String, в нем записывается вводимая или выводимая строка. Данное свойство допустимо как на этапе проектирования (поэтому может быть изменено с помощью инспектора объектов), так и на этапе выполнения, поэтому в программе допустима запись Edit1.Text. Для того чтобы иметь возможность вводить и выводить числовые значения, необходимо преобразовать данную строку в число. Для этой цели существуют несколько функций, например:

StrToFloat(St:String): Real — преобразует строку в значение с плавающей запятой;

StrToInt(St:String):Integer — преобразует строку в целое значение;

FloatToStr(a:Real):String — преобразует значение с плавающей запятой в строку;

IntToStr(a:Integer):String — преобразует строку в целое значение.

Кроме этих функций, можно использовать уже известную процедуру, которая применяется в языке программирования Pascal. Это процедура Val(St:String; Var a:Integer; Var Kod:Integer), переводящая строку в число.

Предположим, что в компоненте Edit1 вводится начальное значение высоты, а затем, после нажатие кнопки «Вычислить», в компоненте Edit2 выводится полученное значение. Создадим следующую процедуру обработки события и следующий код обработки нажатия на первую кнопку. Тогда программа будет иметь вид:

unit Unit1;

interface

uses

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

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

Edit2: TEdit;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

Const g=9.81;

Var h,t : Real;

Begin

h:=StrToFloat(edit1.Text);

t:=sqrt(2*h/g);

edit2.Text:=FloatToStr(t);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Close;

end;

end.

В процедуре описываются две дополнительных переменных и одна константа. Первым оператором переводится значение соответствующего свойства в вещественную переменную, затем производятся вычисления по известной формуле, и последним оператором выводится полученное значение (данная запись аналогична оператору вывода Writeln).

Рисунок 12

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

Компонент Edit может в определенной мере заменить операторы ввода — вывода, но не является совсем удобным для вывода подсказок и сообщений. Для этой цели может быть использован компонент Label, позволяющий выводить не редактируемый текст. Разместим два данных компонента на форме и свойству Caption одной из них дадим значение «Высота падения (м)», а второй — «Время падения (с)», после чего форма примет вид, изображенный на рисунке 12.

Компоненты, размещенные на форме с заданными начальными свойствами посредством инспектора объектов, а также текст соответствующего модуля и самого проекта, представляют собой программу на языке программирования Delphi.

Чтобы при запуске программы не отображался в компонентах Edit текст «Edit1», «Edit2» сделайте «пустым» значение свойства Text у данных компонентов.

Замечание. Редактор кода оснащен набором свойств, обеспечивающих выполнение целого ряда вспомогательных функций. Эти средства имеют общее название Code Insight — интуитивный помощник написания кода. Посредством функции дополнительного кода могут быть легко введены имена свойств, методов и обработчика событий объектов. Сначала необходимо ввести имя объекта, поставив в конце точку, и после некоторой паузы на экране отобразится список всех свойств и методов данного объекта (рисунок 11). Кроме этого, если правильно записать имя функции или процедуры и открытую скобку, то появится подсказка относительно аргументов и их типов. Комбинация клавиш <CTRL> + J приведет к появлению окна, в котором перечисляются все возможные структуры. Выбрав любой элемент, появится заготовка с перечислением необходимых для заполнения полей. Аналогичная заготовка появится при записи первого слова из данной конструкции, например, слова if или for.

Если вам не нравится, что при запуске форма расположена там, где вы ее оставили при разработке, то обратитесь у формы к свойству Position.

Задания:

1. Выполните пример, описанный в лабораторной работе.

2. Реализуйте на языке программирования Delphi задачи из лабораторных работ 1, 2, 3 по языку Pascal.

3. Напишите программу «Калькулятор».

Лабораторная работа 3. Компоненты ввода и вывода данных

Цель: изучить компоненты ввода и отображение текстовой информации.

Рассмотрим более подробно компоненты ввода — вывода данных, для чего условно разделим их на несколько различных блоков:

1) компоненты вывода текстовой информации на экран;

2) однострочные поля ввода текстовой и числовой информации;

3) многострочные поля ввода.

Для вывода определенной информации на экран, кроме уже описанного компонента Label, есть и другие компоненты. Текст, который будет отображен, можно задавать как на этапе разработки формы, так и в процессе выполнения программы, присвоив значение свойству Caption.
В таблице 1 перечислим основные свойства компонента Label (хотя некоторые из них нами уже рассматривались).

Таблица 1. Основные свойства компонента Label

Свойство

Описание

Name

Имя компонента, используемое в программе для доступа
к компоненту и его свойствам

Caption

Текст, отображаемый в поле компонента

Font

Шрифт, который используется для отображения текста

Color

Цвет компонента

Left

Расстояние от левой границы формы до левой границы компонента

Тор

Расстояние от верхней границы формы до верхней границы компонента

Width

Ширина поля компонента

Height

Высота поля компонента

AutoSize

Свойство, определяющее, будет ли размер компонента зависеть от текста в его поле. В случае AutoSize = True, размер компонента будет ограничен текстом в поле компонента. В противном случае размер компонента определяется значениями свойств Width и Height

Transparent

Признак необходимости задания прозрачного цвета для поля компонента. Если Transparent = True, то цвет компонента определяется цветом поверхности, на которой он находится. В противном случае цвет определяется значением свойства Color

Align

Определяет границу, к которой будет прижат компонент:
к верхнему (alTop), нижнему (alBottom), левому (alLeft), правому (alRight) краям, быть растянутым на всю форму (alClient). В случае значения alNone, положение и размер компонента определяется свойствами Тор, Left, Width и Height

Alignment

Способ выравнивания текста в поле компонента. Текст может быть прижат к левому (taLeftJustify), правому краям (taRightJustify) или находиться посередине (taCenter)

Visible

Если Visible = True, то компонент отображается на форме, а в противном случае не отображается

Отдельно рассмотрим свойство Font класса TFont, определяющее шрифт. При выборе данного свойства на этапе проектирования проявляется диалоговое окно, в котором непосредственно задаются характеристики шрифта: стиль, размер и цвет. На этапе выполнения доступ к элементам шрифта осуществляется с помощью свойств класса TFont: Color — цвет шрифта, Height и Size высота шрифта, заданного либо в пикселях, либо
в дюймах, Style — свойство, задающее стиль шрифта, который может быть подчеркнутым — fsUnderline, курсивом — fsItalic и жирным — fsBold.