Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / lect18.doc
Скачиваний:
7
Добавлен:
20.05.2014
Размер:
92.16 Кб
Скачать

18.3 Использование компонентов Label , Edit для ввода-вывода

В качестве примера рассмотрим свойства двух компонентов Label, Edit,

соответствующих третьей и четвертой кнопкам страницы Standard палитры компонентов. В классе TLabel есть надпись без возможности редактирования - это свойство Caption. В классе TEdit есть окно редактирования для ввода-вывода -

это свойство Text . Значения полей Caption и Text всегда выводятся на экран при работе с указанными компонентами.

Присвоить значения этим полям можно двумя способами:

1) программно, 2) при создании формы с помощью Инспектора объектов.

Примеры ввода-вывода в программе:

mystrk = Edit1 -> Text; // ввод строки mystrk из окна Edit1 ;

Edit2 -> Text = mystrk; // вывод строки mystrk в окно Edit2 .

Label1->Caption = " My results:" ; // вывод надписи

В Builder6 есть компонент LabeledEdit, являющийся объединением Еdit и Label, т.е. окно с надписью. Есть и более сложные области редактирования, например, в классах TMemo, TListBox.

18.4 Пример запроса, ввода, вывода для Win -программы

При выполнении лабораторной работы в системе Builder во многих задачах нужен запрос, ввод строки из окна и вывод результата в другое окно.

Запрос должен появиться на форме до нажатия кнопки и поэтому он записывается в одной из функций, связанных с формой, например, в конструкторе TForm1 или функции FormCreate. Обычно для запросов используют надписи, т.е. компоненты TLabel. Пример запроса:

Label1 -> Caption = " Введите строку в окно и нажмите кнопку";

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

нажимается кнопка для запуска метода Button1Click.

Приведем примеры применения метода Button1Click для ввода, обработки и вывода строки. Пусть во введённой строке нужно изменить первые два символа и затем вывести полученную новую строку.

В первом примере не будем использовать строковые функции

для изменения строки ss и поэтому будет работать следующий простой вариант

void _ _fastcall TForm1:: Button1Click (TObject * Sender) {

String ss = Edit1-> Text ; ss[1] = ' * '; ss [2] = ' # ' ; Edit2->Text = ss ; }

Во втором примере полагаем, что нужны обычные строковые функции для строки ss и для этого объявим новую строку с указателем Mci. Указатель Mci позволяет работать со String-строкой как с обычной символьной строкой (char *), т.к. метод c_str( ) выполняет преобразование строки ss в Mci. Для строки Мсi можно применять обычные строковые функции языка С с заголовочным файлом string.h .

void _ _fastcall TForm1:: Button1Click (TObject * Sender) {

String ss ; ss = Edit1->Text ;

char * Mci ; Mci = ss .c_str ( ) ; / / далее любые функции для C

Mci[0] = ' * '; Mci [1]= ' # ' ; / / пример обработки строки Mci

Edit2->Text = Mci ;

}

Память для строки выделяет конструктор класса String при создании объекта ss.

Результаты работы обеих программ совпадают - будет выведена изменённая строка.

Соседние файлы в папке Лекции