- •Федеральное агентство по образованию государственное образовательное учреждение
- •Кафедра автоматики и телемеханики интегрированная среда разработки приложений
- •Лабораторная работа 1 Ознакомление с Интегрированной Средой Разработки (иср)
- •Основное окно иср
- •Библиографический список
- •Лабораторная работа 2 Формы и компоненты Включение в проект новой формы
- •Размещение компонентов на форме
- •Депозитарий – хранилище форм и проектов
- •Задание 7. Опробовать режимы заимствования форм из Депозитария
- •Библиографический список
- •Лабораторная работа 3 Отладка приложений Компиляция и компоновка проекта
- •Сообщения компилятора и компоновщика
- •Действия в случае ошибки выполнения
- •Дальнейшие действия
- •Окно наблюдения Список Часов
- •Окно оценки и модификации Оценить|Изменить
- •Пошаговое выполнение приложения
- •Точки прерывания
- •Использование окна Инспектора Отладки
- •Другие средства отладки
- •Библиографический список
- •Лабораторная работа 4 Компоненты ввода и отображения текстовой информации
- •Компоненты Label, StaticText, Panel
- •Компоненты Edit, LabeledEdit, MaskEdit
- •Компоненты Memo, RichEdit
- •Компоненты ListBox, CheckListBox, ValueListEditor
- •Компонент StringGrid
- •Библиографический список
- •Лабораторная работа 5 Диаграммы и графики Компонент Chart
- •Компонент Image
- •Формирование квадратных матриц
- •Кнопки, индикаторы, управляющие элементы
- •Управляющие кнопки Button и BitBtn
- •Кнопка с фиксацией SpeedButton
- •Группы радиокнопок − компоненты RadioGroup, RadioButton и GroupBox
- •Индикаторы CheckBox и CheckListBox
- •Ползунки и полосы прокрутки − компоненты TrackBar и ScrollBar
- •Заголовки − компоненты HeaderControl и Header
- •Таймер − компонент Timer
- •Панели и компоненты внешнего оформления
- •Панели общего назначения − компоненты Panel,
- •Многостраничные панели − компоненты TabControl,
- •Инструментальные панели − компоненты ToolBar и PageScroller
- •Перестраиваемые панели − компоненты CoolBar и ControlBar
- •Библиографический список
- •Лабораторная работа 9 Системные диалоги
- •Диалоги открытия и сохранения файлов – компоненты
- •Фрагменты диалогов – компоненты
- •Диалог выбора шрифта – компонент FontDialog
- •Диалоги выбора цвета – компоненты ColorDialog, ColorBox
- •Диспетчеризация действий на основе компонента ActionList
- •Диспетчеризация действий на основе компонентов ActionManager, ActionMainMenuBar, ActionToolBar, CustomizeDlg
- •Библиографический список
Компоненты 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 на примере ввода и вывода одномерного массива.
Создайте новый проект и сразу сохраните файл модуля и проект под разными именами в созданной ранее папке.
На пустую форму, слева, в ее верхнюю часть, перенесите метку Label1, ниже ее − окно Edit1, справа от окна − кнопку Button1. В свойство Caption метки запишите Размер массива, свойство Text окна очистите, в свойство Caption кнопки запишите Ввод размера массива.
В правую верхнюю часть формы перенесите окно LabeledEdit1, правее окна поместите вторую кнопку Button2. Метку окна поместите сверху. В подсвойство Caption свойства EditLabel запишите Элемент массива, в свойство Caption второй кнопки − Ввод элемента массива.
Ниже указанных выше компонентов поместите на форме второе окно LabeledEdit2, метку которого расположите слева. Очистите подсвойство Caption свойства EditLabel.
Ввод массива начинается с ввода его размера, и поэтому необходимо, чтобы в первый момент при выполнении приложения оказался в фокусе компонент Edit1. Для этого в свойство формы ActiveControl запишем Edit1.
Обработчики щелчков кнопок запишем следующим образом:
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; }
}
//---------------------------------------------------------------------------
Сохраните проект и выполните приложение. Убедитесь в работоспособности приложения, вводя массивы разных размеров.