Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Компоненты Edit, LabeledEdit, MaskEdit




Приведем вначале общие свойства однострочных окон редактирования Edit, LabeledEdit и MaskEdit.

Внешнее оформление определяется свойством BorderStyle. Вводимый и выводимый текст содержится в свойстве Text типа AnsiString. Это свойство можно устанавливать в процессе проектирования или задавать программно. Перенос строк невозможен. Текст, не помещающийся по длине в окно, просто сдвигается, и можно перемещаться по нему с помощью курсора. Свойство AutoSize позволяет устанавливать автоподстройку под размер текста только высоты, но не ширины окна.

Свойство AutoSelect определяет, будет ли автоматически выделяться весь текст при передаче фокуса в окно редактирования. Оно задается равным true, когда при переключении в данное окно пользователь будет заменять текущий текст, а не исправлять его.

Свойства только времени выполнения SelLength, SelStart, SelText определяют соответственно длину выделенного текста, позицию перед первым символом выделенного текста и сам выделенный текст.

Окна редактирования можно использовать и просто как компоненты отображения текста. Для этого надо установить в true их свойство ReadOnly и целесообразно установить AutoSelect в false. В этом случае пользователь не сможет изменять отображаемый текст, и окно редактирования становится подобным меткам. Отличия от последних − окна иначе оформлены и могут вмещать текст, превышающий их длину. В этом случае пользователь может прокручивать текст, перемещая курсор в окне.

Свойство Text имеет тип строки AnsiString. При присваивании этому типу числовой информации происходит ее автоматическое преобразование в строку. Например, выполнение оператора Edit1->Text=5./2; приведет к появлению в окне текста «2,5». Но при вводе из окна числовой информации надо использовать функции StrToFloat − преобразование строки в значение с плавающей запятой и StrToInt − преобразование строки в целое значение.

Свойство MaxLength определяет максимальную длину вводимого текста. Если MaxLength =0, то длина текста не ограничена. В противном случае MaxLength указывает максимальное число символов, которое может ввести пользователь.

Свойство Modified, доступное только во время выполнения, показывает, проводилось ли редактирование текста в окне. В момент начала работы пользователя с текстом свойство надо поставить в false. Тогда при последующем обращении к нему можно по его значению (true или false) установить, было или не было редактирование.

В компоненте LabeledEdit, помимо самого окна редактирования, не отличимого по виду от Edit, имеется метка. Она задается свойством EditLabel с подсвойствами Caption, Color, Font, WordWrap и др.

Свойство LabelPosition компонента LabeledEdit указывает, с какой стороны от окна размещается метка: lpAbove − сверху, выровненная по левому краю, lpBelow − снизу, выровненная по левому краю, lpLeft − слева, lpRight − справа.

В компоненте MaskEdit можно задавать строку маски в свойстве EditMask. Это позволяет обеспечить синтаксически безошибочный ввод пользователем таких данных, как номера телефонов, паспортные данные, адреса, даты, время и т.п.

 

Рассмотрим использование компонентов Edit и LabeledEdit на примере ввода и вывода одномерного массива.

1. Создайте новый проект и сразу сохраните файл модуля и проект под разными именами в созданной ранее папке.

2. На пустую форму, слева, в ее верхнюю часть, перенесите метку Label1, ниже ее − окно Edit1, справа от окна − кнопку Button1. В свойство Caption метки запишите Размер массива, свойство Text окна очистите, в свойство Caption кнопки запишите Ввод размера массива.

3. В правую верхнюю часть формы перенесите окно LabeledEdit1, правее окна поместите вторую кнопку Button2. Метку окна поместите сверху. В подсвойство Caption свойства EditLabel запишите Элемент массива, в свойство Caption второй кнопки − Ввод элемента массива.

4. Ниже указанных выше компонентов поместите на форме второе окно LabeledEdit2, метку которого расположите слева. Очистите подсвойство Caption свойства EditLabel.

5. Ввод массива начинается с ввода его размера, и поэтому необходимо, чтобы в первый момент при выполнении приложения оказался в фокусе компонент Edit1. Для этого в свойство формы ActiveControl запишем Edit1.

6. Обработчики щелчков кнопок запишем следующим образом:

int n=0, i=0, k[100];

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Edit1->SetFocus();

LabeledEdit2->Text="";

LabeledEdit1->EditLabel->Caption="Элемент массива k["+IntToStr(i)+"]=";

n=StrToInt(Edit1->Text);

Label1->Caption="Размер массива = "+IntToStr(n);

Edit1->Text="";

LabeledEdit1->SetFocus();

i=0;

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{

k[i]=StrToInt(LabeledEdit1->Text);

LabeledEdit1->SetFocus();

i++;

LabeledEdit1->EditLabel->Caption="Элемент массива k["+

IntToStr(i)+"]=";

if(i==n){LabeledEdit1->EditLabel->Caption="Массив введен!";

LabeledEdit2->EditLabel->Caption="Введен массив";

AnsiString s1="";

for(i=0;i<n;i++)s1+=" "+IntToStr(k[i]);

LabeledEdit2->Text=s1;

Edit1->Text="";

LabeledEdit1->Text="";

Edit1->SetFocus();

i=0; }

}

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

7. Сохраните проект и выполните приложение. Убедитесь в работоспособности приложения, вводя массивы разных размеров.





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 1583 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Своим успехом я обязана тому, что никогда не оправдывалась и не принимала оправданий от других. © Флоренс Найтингейл
==> читать все изречения...

2407 - | 2226 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.