
- •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.5 Преобразование строк
Для получения строк класса AnsiString из других типов можно использовать конструкторы класса AnsiString. Их много и они перегружены. Например,
int m =25; String st (m ); Edit1 ->Text = st;
float x = 1.45; String st2 (x ); Edit2 ->Text = st2;
Здесь объявляются объекты st, st2 c инициализацией их, и для этого автоматически вызываются конструкторы, см. раздел 15.4.
Для преобразования чисел в строки и обратно можно использовать функции
StrToInt (String ), StrToFloat (String ), IntToStr (int ), FloatToStr (float )
Например, оператор
m= StrToInt (Edit1 ->Text) ;
выполнит ввод значения m из окна Edit1, а оператор
Edit2 ->Text= IntToStr(m+100) ;
выведет значение ( m+100) в окно Edit2.
В старших версиях можно последний оператор записать как Edit2 ->Text = m+100;
Для строк класса АnsiString можно использовать различные перегруженные операции, например, при выводе соединять в одной строке несколько строк
знаком плюс . Пример:
Label1-> Caption = "Students: " + Edit1->Text + " " + Edit2->Text ;
Edit3-> Text = String (_ _DATA_ _) + " " + String (_ _TIME_ _) ;
Последний оператор выводит дату и время.
Рассмотрим другие способы получения строк.
Преобразование целого числа j в обычную строку ss выполняет
часто применяемая функция itoa c прототипом в <stdlib.h>:
char * itoa ( int j, char *ss, 10);
где 10 - это основание десятичной системы счисления, т.к. возможны и другие.
Для преобразования строк классов string и AnsiString в обычные строки
можно использовать метод c_str ( ):
string a ; Edit3 -> Text = a . c_str ( );
18.6 Применение функций ShowMessage, MessageBox для ввода-вывода
Eсть очень простая функция ShowMessage для вывода строки str в окно, заголовком которого является имя выполняемого приложения:
ShowMessage ( str);
Для вывода текста можно также вызвать метод MessageBox, который имеет 3 аргумента:
Application -> MessageBox ( “ текст ”, “заголовок окна ”, 0 );
Здесь текст и заголовок могут быть любыми. Имя Application является
указателем на объект, которым является вся ваша программа. Последний параметр определяет вид окна сообщений и при его нулевом значении в окне есть кнопка ОК. Возможны и другие значения этого параметра, например, 1, 2, 3, 4, 5. Пример:
Application -> MessageBox ( “ Значения: ”, “ REZ-T from vst.cpp ” ,0 );
Эту функцию можно использовать и для вывода чисел, но числа должны быть преобразованы в строку, например, с помощью функции sprintf из языка С. Эта функция выполняет преобразование с учетом формата. Она уже рассматривалась в разделе 13.2 и использовалась в С-программе построения графика. Её вызов таков:
sprintf ( str, “ упр.инф. “, значения );
например, sprintf ( str, “ k= % i x=%5.2f \n“ , k , x );
Здесь str – это строка символов, т.е. это либо символьный массив, либо указатель. Для функции sprintf нужно подключить заголовочный файл <stdio.h> . После такого преобразования можно в одно окно MessageBox выводить несколько чисел:
Application -> MessageBox ( str, “ Получено: ” , 0 );
Рассмотренный метод MessageBox c тремя аргументами входит в библиотеку VCL системы Builder. В библиотеке Windows API есть такая же функция, но у неё четыре аргумента.
Контрольная работа.
1. Разработать класс с тремя элементами: одно данное, один метод, один конструктор.
В тексте класса дать только прототипы метода и конструктора.
2. Вне класса привести текст конструктора в любой форме, а метод не писать.
3. Составить функцию main c выводом элементов класса на экран.
Лекция 19