
- •18.1 Редактор кода
- •18.2 Операторы ввода-вывода для Windows-программ
- •18.3 Использование компонентов Label , Edit для ввода-вывода
- •18.4 Пример запроса, ввода, вывода для Win -программы
- •18.5 Преобразование строк
- •18.6 Применение функций ShowMessage, MessageBox для ввода-вывода
- •19.1 Пример программы
- •Void _fastcall tForm1::Button1Click(………)
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.
Результаты работы обеих программ совпадают - будет выведена изменённая строка.