Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по управлению данными.DOC
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
11 Мб
Скачать
☆

7.2 Формы, модули и метод разработки «Two-Way Tools»

Формы - это объекты, в которые помещаются другие объекты для создания пользовательского интерфейса приложения. Модули состоят из кода, который реализует функционирование приложения, обработчики событий для форм и их компонент.

Информация о формах хранится в трех типах файлов - .dfm (образ формы), .h (заголовочный файл, хранит объявления классов, соответствующих классам и другим компонентам) и .cpp (программный код обработчиков событий).

При создании новой формы генерируется заготовка модуля.

Такая синхронизация и делает CBuilder two-way-инструментом, обеспечивая полное соответствие между кодом и визуальным представлением. Например, предположим, что добавляется описание поведения формы (соответствующий обработчик событий), чтобы показывать окно сообщения по нажатию кнопки. Такое описание появляется, если дважды щелкнуть мышкой непосредственно на объект Button в форме или на событие OnClick на странице Events в Инспекторе объектов. В любом случае CBuilder в файле .cpp создаст заголовок метода, куда можно добавить код.

void __fastcall TPr_Form::Button5Click(TObject *Sender)

{…}

Cоздавая этот код, CBuilder автоматически корректирует описание объекта TPr_Form, добавляя заголовок процедуры Button5Click в файл .h.

class TPr_Form : public TForm

{__published: // IDE-managed Components

TDBGrid *DBGrid1;

TButton *Button1;

TButton *Button2;

TButton *Button3;

TButton *Button4;

TButton *Button5;

void __fastcall Button1Click(TObject *Sender);

void __fastcall FormShow(TObject *Sender);

void __fastcall FormClose(TObject *Sender, TCloseAction &Action);

void __fastcall Button2Click(TObject *Sender);

void __fastcall Button3Click(TObject *Sender);

void __fastcall Button4Click(TObject *Sender);

void __fastcall Button5Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TPr_Form(TComponent* Owner);

};

Чтобы отобразить неактивную форму, следует использовать метод ShowModal. Этот метод отображает форму и делает ее модальной, что позволяет работать с элементами управления на этой форме. При закрытии формы, активизированной с помощью метода ShowModal, свойство формы ModalResult должно получить значение из следующего набора: mrNone, mrOK, mrCancel, mrYes, mrNo. При этом форма закрывается, и значение ModalResult передается как результат метода ShowModal.

Для закрытия формы можно также использовать метод Close.

Событие OnActivate происходит, когда форма становится активной.

Прежде чем сослаться на свойство или на метод формы из метода другой формы (в предположении, что обе формы принадлежат одному проекту), необходимо выполнить пункт меню File, Include Unit Hdr (это приводит к добавлению в файл .h директив #include).

7.3. Палитра компонент

Палитра компонент использует постраничную группировку объектов. Вверху палитры находится набор закладок - Standard, Additional, Dialogs и т.д. Щелкнув мышью по одной из закладок, можно перейти на следующую страницу Палитры компонент:

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

Перечислим основные компоненты страницы Standard и дадим некоторые пояснения.

TMainMenu позволяет поместить главное меню в программу. Создание меню включает три шага:

  • Помещение TMainMenu на форму.

  • Вызов Дизайнера меню через свойство Items в Инспекторе объектов.

  • Определение пунктов меню в Дизайнере меню.

Работа с Дизайнером меню.

Страница Events при работе с Дизайнером меню

TLabel служит для отображения текста на экране. Текст задается в качестве значения свойства Caption. Для изменения шрифта и цвета текста существует свойство Font.

TEdit - поле ввода. Эта компонента может быть использована для отображения короткого фрагмента текста и позволяет пользователю вводить текст (он представляет собой значение свойства Text) во время выполнения программы.

TButton (обычная кнопка) позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. Поместив объект типа TButton на форму, по двойному щелчку можно создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом (подчеркнуто то, что нужно написать вручную):

void __fastcall TPr_Form::Button2Click(TObject *Sender)

{DM->PR->Insert();

Edit_PR_Form->ShowModal();}

TCheckBox - кнопка с независимой фиксацией, которая может быть включена или выключена. Состояние объекта определяется значением свойства Checked типа Boolean. При нажатии этой кнопки происходит событие OnClick, в результате которого значение свойства Checked меняется на противоположное. Текст, отображаемый рядом с кнопкой, - значение свойства Caption. Состояние кнопки - включена она или выключена - определяется значением свойства State, которое может быть cbUnchecked или cbChecked.

TGroupBox - компонента для размещения других элементов управления. Заголовок окна - значение свойства Caption.

TRadioButton (кнопка с зависимой фиксацией) позволяет выбрать только одну опцию из нескольких. Как правило, таких компонент несколько. Текст, связанный с кнопкой, - значение свойства Caption. При выборе кнопки изменяется значение ее свойства Checked и происходит событие OnClick.

TRadioGroup - область, содержащая несколько объектов типа TRadioButton. Кнопки представляют собой значения свойства Items, которое имеет тип TStrings, упоминавшийся ранее. Значение этого свойства можно менять как в период проектирования с помощью редактора строк, так и в период выполнения с помощью использования методов и свойств объекта типа TStrings. Значение свойства ItemIndex определяет, какая кнопка выбрана в данный момент (их нумерация в группе начинается с 0):