Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прикл_программир_ч1.doc
Скачиваний:
6
Добавлен:
18.09.2019
Размер:
11.05 Mб
Скачать

5.2. Окно редактирования Edit

Этот элемент управления используется для отображения, ввода и редактирования однострочных текстов. В компоненте Edit вводимый и выводимый текст содержится в свойстве Text. Это свойство можно устанавливать в процессе проектирования или задавать программно. Перенос строк текста невозможен, поэтому текст, не помещающийся по длине в окно, остается невидимым. Свойство AutoSize позволяет автоматически подстраивать высоту (но не ширину) окна под размер текста. При вводе в окно числовой информации происходит ее автоматическое преобразование в строку, поэтому оператор

Edit1 -> Text = 5.0/2;

будет воспринят компилятором нормально и приведет к появлению в окне числа 2,5. Однако, при выводе из окна числовой информации надо использовать функции

StrToFloat( ) , для преобразования строки в число с плавающей запятой, и StrToInt( ), для преобразования строки в целочисленное значение. Если вводимый текст содержит недопустимые символы, то функции преобразования генерируют исключение Econver Error. Поэтому в программе необходимо предусмотреть обработку этого исключения. Например, фрагмент кода :

int A;

………..

try

{

A = StrToInt(Edit1 -> Text);

}

Catch(Econver Error &)

{

ShowMessage(“Вы ввели ошибочное число; повторите ввод”);

}

обеспечивает пользователю сообщение об ошибке ввода и предотвращает ошибочные вычисления.

Управлять поведением выделенного фрагмента текста в окне редактора можно с помощью свойств SelLength, SelStart, SelText, , определяющих соответственно длину выделенного текста, позицию перед первым символом выделенного текста и сам выделенный текст. Например, если в окне имеется текст вида :”Выделение текста “ и в нем пользователь выделил слово “ текста” , то SelLength= 6, SelStart = 10 и SelText=

текста”. Если выделенного текста нет , то свойство SelStart просто определяет текущее положение курсора . Свойство MaxLength определяет максимальную длину вводимого текста, при MaxLength =0 длина текста не ограничена. В противном случае значение MaxLength указывает максимальное число символов, которое пользователь может вводить в компонент. Свойство PasswordChar позволяет превращать окно редактирования в окно ввода пароля. При его использовании в окне редактора указываются специальные символы, замещающие фактический текст, вводимый пользователем . На ряду с рассмотренными , часто используются следующие свойства компонента:

Name – задает имя редактора в программном коде;

BorderStyle – определяет тип рамки, используемой компонентом;

Color - указывает цвет фона компонента;

Font - определяет атрибуты шрифта;

ReadOnly - указывает, может ли пользователь изменять тест в компоненте.

Методы компонента Edit. Среди наиболее используемых методов этого компонента следует указать следующие:

Clear - удаляет текст из окна;

SelectAll - выделяет весь текст в окне редактирования;

ClearSelection - удаляет текст, выделенный в окне;

CopyToClipboard - копирует выделенный текст в Clipboard ;

PasteFromClipboard - переносит в окно текст из буфера Clipboard.

Основным событием редактора является событие OnChange. Оно происходит каждый раз , когда пользователь вставляет, заменяет или удаляет символы из строки текста. Другие важные события OnEnter и OnExit. Первое из них происходит, когда компонент получает фокус ввода, а второе – когда компонент его лишается.

Использование ряда свойств и методов окна редактирования Edit, показано в приложении, интерфейс и программный код которого приведены на рисунках 5.3 и 5.4.

Обозначения, принятые в приложении, и свойства используемых компонентов, установленные во время проектирования, поясняются в таблице 5.2.

Таблица 5.2

Компонент

Свойство

Значение

Форма

Caption

Основные свойства редактора Edit

Кнопка

Name

Button1

Caption

Введите текст

Радио кнопки

Caption

Ввод текста(RadioButton1)

Caption

Считывание текста(RadioButton2)

Caption

Изменение парам. шрифта(RadioButton3)

Caption

Счит.выдел.части текста(RadioButton4)

Caption

Замена выдел.части текста(RadioButton5)

Сaption

Запись(RadioButton6)

Caption

Считывание(RadioButton7)

Окно редактирования

Name

Edit1

Метка

Caption

Поле ввода

Окно редактирования

Name

Edit2

Метка

Caption

Поле вывода

Многостр.окно редак.

Name

Memo1

Графическая кнопка

Name

BitBtn1

Другие свойства компонентов принимаются по умолчанию.

Рис.5.3 Интерфейс приложения, характеризующего свойства компонента Edit

Интерфейс приложения(Рис.5.3) содержит форму на которой размещены радио кнопки ,для изменения свойств компонента, кнопка типа Button, для ввода текста при считывании и записи информации в буфер обмена(ClipBoard),графическая кнопка типа BitBtn для закрытия программы, два однострочных окна редактирования, которые используются как поля ввода и вывода текстовой информации, а так же многострочное окно редактирования Memo1, для демонстрации операторов кода при выполнении программы.

//Программный код, характеризующий свойства компонента Edit

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton1Click(TObject *Sender)// Ввод текста

{

Edit1->Text="Ввод текста";

Memo1->Text="Edit1->Text=Ввод текста"; //Занесение текста кода в поле Memo1

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton2Click(TObject *Sender)//Считывание текста

{

Edit2->Text=Edit1->Text;

Memo1->Text= " Edit2->Text=Edit1->Text; "; //Занесение текста кода в поле Memo1

}

//---------------------------------------------------------------------------

void_fastcall TForm1::RadioButton3Click(TObject *Sender)//Изменение параметров текста

{

Edit1->Font->Name="Times New Roman";

Edit1->Font->Size=12;

Edit1->Font->Color=clRed;

Memo1->Text= " Edit1->Font->Name=Times New Roman";//Занесение текста кода в поле Memo1

Memo1->Lines->Append("Edit1->Font->Size=12;" );

Memo1->Lines->Append("Edit1->Font->Color=clRed;");

}//------------------------------------------------------------------

void __fastcall TForm1::RadioButton4Click(TObject *Sender)//Считывание выделенной //части текста

{

Edit2->Text= Edit1->SelText;

Memo1->Text= "Edit2->Text= Edit1->SelText; "; //Занесение текста кода в поле Memo1

}

//---------------------------------------------------------------------------

void_fastcall TForm1::RadioButton5Click(Tobject *Sender)//Замена выделенной

//части текста

{

Edit1->SelText="Замена";

Memo1->Text= "Edit1->SelText=Замена;"; //Занесение текста кода в поле Memo1

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)//Ввод текста в окно редактора

{

Edit1->Text="Текст,который заносится в Clipboard()";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton6Click(TObject *Sender)//Выделение текста, его //копирование в Clipboard и удаление текста из окна редактора Edit1

{

Edit1->SelectAll();

Edit1->CopyToClipboard();

Edit1->Clear();

//Занесение текста кода в поле Memo1

Memo1->Text= "Edit1->SelectAll();Edit1->CopyToClipboard();Edit1->Clear();";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton7Click(TObject *Sender)

//Очистка окна редактора Edit2 и ввод в него текста из Clipboard

{

Edit2->Clear();

Edit2->PasteFromClipboard();

//Занесение текста кода в поле Memo1

Memo1->Text= "Edit2->Clear();Edit2->PasteFromClipboard(); ";

}

//---------------------------------------------------------------------------

Рис.5.4 Программный код, характеризующий свойства компонента Edit

Программный код( Рис.5.4) позволяет демонстрировать основные свойства и методы однострочного окна редактирования Edit. Запускающим ключом для демонстрации каждого свойства(метода) является событие OnClick (включение радио кнопки ), а операторы программного кода ,реализующие то или иное свойство ( метод ) отображаются в окне редактирования Memo1. Событие OnClick , связанное с включением кнопки Button1, используется для ввода текста в компонент Edit1. Этот текст затем применяется для демонстрации методов считывания и записи информации в буфер обмена (ClipBoard).Листинг программного кода снабжен подробными комментариями и не требует дополнительных пояснений.