Имя_поля.text;.

Например, если в окно с именем Edit3 ввести последовательность символов 'ABC', то переменная Edit3.text получит значение 'ABC'. Это значение можно присвоить любой переменной типа string, например

var S: String;

. . . . . . .

S:= Edit3.Text; .

Для записи последовательности символов из программы в строку Edit1 достаточно выполнить оператор присваивания

Edit1.Text := St; (St - переменная строкового типа).

Пример. Для иллюстрации ввода и вывода данных с помощью компонента Edit создадим проект с формой, показанной на рис.5.24.1

 

 

Рис. 5.24.1 Форма для примера

 

То есть форма должна содержать строку Edit и две кнопки: "закрыть" и "операция". В строку Edit будем записывать символы. При нажатии на кнопку "операция" программа должна забирать введенную последовательность символов, делать с ней некоторые преобразования (например, добавлять слева и справа символ #) и возвращать результат в строку Edit.

1.Создадим форму с заголовком "пример", для этого запишем в свойстве Caption формы слово "пример".

2.Создадим две кнопки "закрыть" и "операция". Как создать кнопки мы уже рассмотрели. Заметим только - при создании второй кнопки в описание класса будет добавлен компонент

Button2:Tbutton

и метод для обработки события связанного со второй кнопкой

Procedure Button2Click(sender:Tobject);

а в конце модуля формы будет добавлена заготовка процедуры обработчика

Procedure Tform1.Button2Click(sender:Tobject);

begin

end;.

2. Создадим строку редактирования Edit. Для этого

- в палитре компонентов выберем страницу "стандартные";

- щелкнем по кнопке и нарисуем в форме прямоугольник.

На экране в форме появится выделенный прямоугольник с текстом Edit1.

Значение строки редактирования передается через свойство Text, по умолчанию в этом свойстве записано Edit1. Удалим этот текст из свойства Text.

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

 

5.12.3. Ввод и вывод символьных данных.

Подготовим проект, который позволяет делать следующее. Пользователь вводит в строку редактирования последовательность символов. После щелчка на кнопке "операция" программа должна:

- взять строку символов и добавить слева и справа символ # ;

- удалить из строки исходную последовательность;

- вывести в строку Edit полученную последовательность.

Для реализации этих функций необходимо в модуле формы добавить следующее (выделено жирным шрифтом):

a) в разделе переменных указать переменную (например S) строкового типа, т.е. раздел переменных будет иметь вид

Var Form1:Tform;

S : String;

б) в процедуру обработчика события для кнопки "операция" добавить текст:

procedure Tform1.Button2Click(sender: Tobject);

begin

S:=Edit1.Text; //чтение из окна в S

Edit1.Text := ''; //очистка окна

S:= '#' + S + '#'; //добавление символов слева и справа

Edit1.Text := S; //запись в окно новой строки

end;

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

unit Uni3;

interface

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

type TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private { Private declarations }

public { Public declarations }

end;

var Form1: TForm1;

S:String;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

Close

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

S:=Edit1.Text; Edit1.Text:='';

S:='#'+S+'#'; Edit1.Text:=S;

end;

end.

5.12.4. Ввод и вывод чисел.

 

Через строку Edit можно передавать не только текст, но и числа. При этом числа передаются как последовательности символов, поэтому при передаче чисел необходимо предусмотреть преобразование числовых символов в числа при вводе и преобразование чисел в последовательности символов при выводе. Для этого можно использовать стандартные функции:

- Val(S,m,n) - для преобразования последовательности символов (S) в число (m). Если число содержит недопустимый символ, то переменная n (целого типа) получает значение кода этого символа.

Пример: если в поле Edit1 мы ввели число, значение которого должна получить переменная А, то надо записать

Val(Edit1.Text,A,cod);

(переменная cod должна быть объявлена как данное целого типа);

 

- Str(Y,S) - для преобразования числа (У) в последовательность символов (S) (символьное изображение числа). В функции Str можно также указывать ширину поля (Sp) и количество десятичных знаков (dz) как и в процедуре write, т.е. форма записи функции Str имеет вид

Str(Y:Sp:dz, S);.

Например, запись вида Str(y:7:3,S1);

Str(z:14,s2);

означает, что символьное представление числа У будет занимать поле из 7 позиций и в дробной части числа будет 3 позиции, а переменная Z будет представлена в форме с буквой Е и мантисса будет содержать пять цифр в дробной части, например

-1,10765Е+0003 .

Замечание. В DELPHI определен широкий набор стандартных функций для преобразования типов. В частности есть функции выполняющие аналогичные преобразования:

FloatToStr(X) - преобразует вещественное число типа Extended в символьное представление.

IntToStr(N) - преобразует целое число типа Integer в строку символов.

StrToFloat(s) - преобразует строку s в двоичное вещественное число типа Extended.

StrToInt(s) - преобразует строку s в двоичное целое число типа Integer.

 

Пример. Преобразуем предыдущий пример так, чтобы при нажатии на кнопку "операция" программа:

- брала из поля Edit символьное представление числа;

- преобразовывала его в числовую форму (переменная Х);

- возводила в квадрат (Y:=X*X);

- полученный результат (У) преобразовывала в символьное представление и выводила его в окне Edit.

Для этого добавим в модуль формы следующее:

1) В раздел переменных добавим описание переменных X, Y и cod, т.е.

Var Form1:Tform;

S :String;

X,Y :Real;

cod :Integer;

2) В обработчике события для кнопки "операция" запишем

Procedure Tform1.Button2Click(sender:Tobject);

begin

Val(Edit1.Text,X,cod); {преобразование в число}

Edit1.Text:='';{очистка окна}

Y:=X*X;{вычисление У}

Str(Y,S);{преобразование числа в символы}

Edit1.Text:=S{вывод в окно}

End;

Полный текст модуля формы для этого примера приведен ниже.

unit Uni4;

interface

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

type TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private { Private declarations }

public { Public declarations }

end;

var Form1: TForm1;

S:String;

X,Y:Real; cod:Integer;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

Close

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Val(Edit1.Text,X,cod);

Edit1.Text:='';

Y:=X*X;

Str(Y,S);

Edit1.Text:=S;

end;

end.