Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по C++ Builder

  Все выпуски  

Уроки по C++ Builder


Информационный Канал Subscribe.Ru RAX - уникальная статистика и популярность вашего сайта


C++ Builder. Уроки с сайта http://progs.biz

Рассылка №5

C++ Builder. Урок 9. Компонент Edit.
C++ Builder. Урок 10. Работаем с двумя формами.

Полные версии уроков (с картинками) можно найти по адресам
Урок 9. Компонент Edit.
Урок 10. Работаем с двумя формами.

C++ Builder. Урок 9. Компонент Edit

Компонент Edit предназначен для ввода текста. Расположен он на вкладке Standard Палитры компонентов.

Основное его свойство - это Text. Оно позволяет читать и записывать некоторый текст в Edit. Обратите внимание, что это свойство имеет строковый тип (вернее тип AnsiString, но сейчас это уточнение не столь важно). Это означает, что если пользователь вводит в edit некоторое число, то необходимо дополнительное преобразование. Делается это приблизитетльно так:

  int z= StrToInt(Edit1->Text);

Кроме функции StrToInt есть обратная к ней IntToStr. Они переводят строку в целое число и целое число в строку соответственно. Кроме этой пары функций имеется пара StrToFloat и FloatToStr, котрые работают с вещественными числами.

Основное событие для edit'а - это Change. Возникает при изменении свойства Text.

Кроме того, часто используются такие события как KeyPress (возникает при вводе каждого символа), KeyDown и KeyUp (возникают при нажатии и отпускании клавиши). Вот так, например, можно ограничить пользовательский ввод только символами из некоторого набора:

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
  if (Key!='a' && Key!='b' && Key!='c')
  {
    Key=0x0; //Обнуляем символ
    MessageBeep(-1); //Звуковой сигнал
  }
}

В этом примере пользователь сможет ввести только символы a, b и c. При любом другом символе раздастся звуковой сигнал. Параметр Key тут передается по ссылке, что и позволяет нам изменить его. Событие KeyPress возникает принажатии алфавитно-цифровых клавиш. Если же вам надо отследить нажатие других клавиш (например, F1 или клавиш со стрелочками), то используйте события KeyDown и KeyUp. Они, крроме того, позволяют определить нажатие клавиш-модификаторов (Atl, Ctrl и Shift).

Из полезных свойств отметим еще некоторые.

Свойство CharCase. Возможные значения для него - ecNormal (вводимый текст автоматически не преобразуется), ecLowerCase (текст преобразуется к нижнему регистру) и ecUpperCase (текст преобразуется к верхнему регистру).

Свойство MaxLenght. Задает максимально возможное число символов в edit'е. По умолчанию равно нулю, что означает, что количество вводимых символов не ограничено.

Свойство ParentFont. Может принимать значение true (в edit'е будет использоваться шрифт формы) и false (edit будет использоваться собственный шрифт).

Свойство PasswordChar. Позволяет задать символ-заменитель для ввода пароля. Чаще всего для этих целей используют звездочку. Свойство text при этом все равно будет содержать вводимый пользователем пароль.

Наверх

C++ Builder. Урок 10. Работаем с двумя формами

Приложение редко состоит только из одной формы. Почти в любой программе есть дополнительные формы с разными настройками и параметрами. Для добаления в программу еще одной формы нажмите на кнопочку New Form на одной из панелей инструментов.

Появится еще одна форма. Разместите на ней Edit и две обычные кнопки. Для первой кнопки задайте свойство Caption как "OK", для второй - "Cancel". Пользователь будет задавать в edit'е некоторый параметр, который мы будем передавать в главное окно нашего приложения. Появляться же наша вторая форма будет по некоторому действию пользователя (выбору пункта меню, щелчку мыши и т. п.). Напишем теперь код, по которому наше второе окно будет появляться. Для этого, во-первых, добавьте строку

...
#include "Unit1.h"
#include "Unit2.h"
 ...

в файл Unit1.cpp реализации первой формы.

И, во-вторых, добавьте код для показа второй формы в модальном виде:

  ...
  Form2->ShowModal();
  ...

Добавить его можно, например, в обработчике меню (или там, где вы хотите, чтобы ваше второе окно появилось).

Запускаем программу и проверяем. Второе окно появляется при выборе пункта меню. Правда, кнопки OK и Cancel не работают. Напишем для них соответствующий код. Добавьте для обработчиков нажатия на кнопки OK и Cancel такой код:

void __fastcall TForm2::Button1Click(TObject *Sender)
{
  Close(); //Закрываем форму
  ModalResult=mrOk; //Результат закрытия - mrOk
}
 ...
void __fastcall TForm2::Button2Click(TObject *Sender)
{
  Close(); //Закрываем форму
  ModalResult=mrCancel; //Результат закрытия - mrCancel
}

Код достаточно понятен - метод Close() закрывает окно, и в свойство ModalResult второй формы мы раписываем значение, соответствующее нажатой пользователем кнопки. Осталось переделать код для показа второй формы. Измените его следующим образом:

  ...
  if (Form2->ShowModal()==mrOk) //Если нажата кнопка OK
    Form1->Caption=Form2->Edit1->Text; //то меняем заголовок у формы
  ...

Как вы видите, мы тут анализируем, что за кнопку пользователь нажал. Если эта была OK, то меняем заголовок у формы на заданное пользователем значение, если Cancel, то ничего не делаем.

Наверх

Рассылки сайта progs.biz:

Рассылки Subscribe.Ru
Обзор книг по программированию

Обзор новых книг по программированию. Включает книги как по традиционному программированию (Visual C++, Delphi, Visual Basic, C#, Java,...), так и по WEB-программированию (JavaScript, PHP, ASP, ASP.NET, Perl,...). Кроме того, предполагается обзор книг по компьютерным сетям, безопасности, сертификации и др.


Copyright Шмидт Отто, 2002

Copyright Алексеев Игорь, 2002

Copyright сайт progs.biz, 2002


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное