- •В.В. Чуркин
- •Содержание
- •Ознакомление с Интегрированной Средой Разработки (иср)
- •Основное окно иср
- •Библиографический список
- •Занятие 1 Формы и компоненты Включение в проект новой формы
- •Размещение компонентов на форме
- •Депозитарий – хранилище форм и проектов
- •Задание 7. Опробовать режимы заимствования форм из Депозитария
- •Контрольные вопросы
- •Библиографический список
- •Занятие 2 Отладка приложений Компиляция и компоновка проекта
- •Сообщения компилятора и компоновщика
- •Действия в случае ошибки выполнения
- •Дальнейшие действия
- •Окно наблюдения Список Часов
- •Окно оценки и модификации Оценить|Изменить
- •Пошаговое выполнение приложения
- •Точки прерывания
- •Использование окна Инспектора Отладки
- •Другие средства отладки
- •Контрольные вопросы
- •Библиографический список
- •Занятие 3 Компоненты ввода и отображения текстовой информации
- •Компоненты Label, StaticText, Panel
- •Компоненты Edit, LabeledEdit, MaskEdit
- •Компоненты Memo, RichEdit
- •Компоненты ListBox, CheckListBox, ValueListEditor
- •Компонент StringGrid
- •Контрольные вопросы
- •Библиографический список
- •Занятие 4 Диаграммы и графики Компонент Chart
- •Компонент Image
- •Контрольные вопросы
- •Библиографический список
- •Контрольные вопросы
- •Библиографический список
- •Формирование квадратных матриц
- •Контрольные вопросы
- •Библиографический список
- •Кнопки, индикаторы, управляющие элементы
- •Управляющие кнопки Button и BitBtn
- •Кнопка с фиксацией SpeedButton
- •Группы радиокнопок − компоненты RadioGroup, RadioButton и GroupBox
- •Индикаторы CheckBox и CheckListBox
- •Ползунки и полосы прокрутки − компоненты TrackBar и ScrollBar
- •Заголовки − компоненты HeaderControl и Header
- •Таймер − компонент Timer
- •Календарь − компонент DateTimePicker
- •Панели и компоненты внешнего оформления
- •Панели общего назначения − компоненты Panel,
- •Многостраничные панели − компоненты TabControl,
- •Инструментальные панели − компоненты ToolBar и PageScroller
- •Перестраиваемые панели − компоненты CoolBar и ControlBar
- •Контрольные вопросы
- •Библиографический список
- •Занятие 8 Системные диалоги
- •Диалоги открытия и сохранения файлов – компоненты
- •Фрагменты диалогов – компоненты
- •Диалог выбора шрифта – компонент FontDialog
- •Диалоги выбора цвета – компоненты ColorDialog, ColorBox
- •Контрольные вопросы
- •Библиографический список
- •Занятие 9 Технология разработки приложений. Диспетчеризация действий
- •Диспетчеризация действий на основе компонента ActionList
- •Диспетчеризация действий на основе компонентов ActionManager, ActionMainMenuBar, ActionToolBar, CustomizeDlg
- •Контрольные вопросы
- •Библиографический список
- •Занятие 10 Динамически присоединяемые библиотеки dll Назначение dll
- •Статическое и динамическое связывание dll с приложением
- •Создание dll
- •Примеры статического и динамического связывания dll
- •Контрольные вопросы
- •Библиографический список
Компоненты Label, StaticText, Panel
Компоненты Label, StaticText, Panel используются для отображения различных надписей на форме. Основное назначение панели Panel − компоновка компонентов в окне формы. Однако панель можно использовать и для вывода текстов.
Тексты, отображаемые в компонентах, являются значениями их свойства Caption. Его можно устанавливать в процессе проектирования или задавать и изменять программно во время выполнения приложения. Например: Label1->Caption = “Введен массив”;
Свойство Caption имеет тип строки AnsiString. При присваивании этому типу числовой информации происходит ее автоматическое преобразование в строку. Например, оператор Label1->Caption=3.4; приведет к появлению в метке надписи «3,4». Но если нужно занести в метку смешанную информацию, состоящую из строк символов и чисел, то необходимо воспользоваться функциями FloatToStr и IntToStr, переводящими соответственно числа с плавающей запятой и целые в строку, и операцией «+», которая для строк означает их конкатенацию (склеивание).
Во всех компонентах цвет фона определяется свойством Color, а цвет надписи − подсвойством Color свойства Font.
Для метки Label цвет и шрифт − единственно доступные элементы оформления надписи. Компоненты StaticText и Panel имеют еще свойство BorderStyle, определяющее рамку текста − бордюр, и Panel − BevelInner, позволяющее разнообразно оформлять надписи.
Вертикальный и горизонтальный размеры Label и StaticText определяются размером надписи, если свойство AutoSize установить в true.
В метке Label имеется свойство WordWrap − допустимость переноса слов длинной надписи, превышающей длину компонента, на новую строчку. Для осуществления переноса нужно WordWrap установить в true, AutoSize− в false, а горизонтальный и вертикальный размеры метки сделать такими, чтобы в ней могло поместиться нужное число строчек приемлемой длины.
В метке StaticText перенос длинного текста осуществляется автоматически, если AutoSize установить в false, а вертикальный размер метки − достаточным для размещения нескольких строчек.
В панели размещение надписи в нескольких строчках невозможно.
Рассмотрим использование компонентов Label и StaticText на примере формирования и обменной сортировки массива из целых чисел.
Создайте для проекта приложения каталог (папку Windows), запустите C++Builder 6, создайте новый проект и командой Сохранить все сохраните файл модуля и проект под разными именами.
Перенесите в середину верхней части пустой формы метку Label1, установите ее свойство Color таким, чтобы метка была видна на форме, в свойство Caption впишите Исходный массив, в свойстве Font (шрифт) установите подсвойства Color − clHotLight, Size − 8 и, нажав на кнопку с тремя точками, установите шрифт − курсив, цвет − черный.
Перенесите на форму вторую метку Label2. Установите мышью ее размеры такими, чтобы она вместила 100 двузначных чисел, а также свойства Color − clYellow, AutoSize − false, WordWrap − true, шрифт − полужирный.
Перенесите в середину формы, ниже второй метки Label2, метку StaticText1. Установите шрифт курсив, размером 12. В свойство Caption напишите Отсортированный массив, в Color установите clCream.
Перенесите на форму вторую метку StaticText2. Установите свойство AutoSize в false, остальные − аналогично второй метке Label2.
Перенесите в нижнюю часть формы кнопку Button1 и измените ее свойство Caption на ПУСК.
В заголовочном файле добавьте директиву #include<stdlib.h>
Задайте обработчик события (щелчок кнопки) следующим образом:
const int n=100;
//---------------------------------------------------------------------------
void __fastcall Tform1::Button1Click(Tobject *Sender)
{ AnsiString s1,s2;
int i,j,k[n],z;
for(i=0;i<n;i++) k[i]=random(101)-50;
s1=s2=””;
for(i=0;i<n;i++) s1+=” “+IntToStr(k[i]);
Label2->Caption=s1; // вывод исходного массива
// обменная сортировка массива
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(k[i]>k[j]) {z=k[i]; k[i]=k[j]; k[j]=z;}
for(i=0;i<n;i++) s2+=” “+IntToStr(k[i]);
StaticText2->Caption=s2; // вывод отсортированного массива
}
//---------------------------------------------------------------------------
Сохраните проект и выполните приложение. Нажимая на кнопку ПУСК, убедитесь в работоспособности приложения.