Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Windows программы Builder ⇐ ПредыдущаяСтр 9 из 9
Как и все С, С++ программы состоят из объявлений (переменных, классов, типов, функций) и определений функций. Среди этих функций есть главная – WinMain, она начинает выполнение программы. Функция обычно самая короткая из всех функций и выполняет только некоторые подготовительные операции: 1. Инициализирует объекты-компоненты и объект-форма Затем выполнение программы сводится к событиям в объектах-компонентах и передаче результатов в другие объекты-компоненты, как правило, это происходит при участии пользователя. Все объекты-компоненты размещаются в формах, каждой форме соответствует свой модуль, модуль имеет 2 файла: 1. Заголовочный файл 2. Файл реализации Реализуется принцип сокрытия информации. Следовательно, windows программы строятся по модульному принципу. На основе написанного кода создается выполняемый файл (модуль) в результате выполнения следующих этапов: 1. Препроцессор – преобразует исходный текст в соответствии с директивами препроцессора, например – включает текст одних файлов в тексты других и т.д. 2. Компилятор – переводит тексты модулей в машинный (объектный) код, для каждого исходного файла создается объектный файл с расширением *.obj 3. Компоновщик – объединяет объектные файлы в единый загружаемый и выполняемый модуль с расширением exe, модуль запускается на выполнение В процессе проектирования Builder автоматически создает головной файл проекта с функцией WinMain, заголовочные файлы и файлы реализации, однако пользователь может делать соответствующие добавления в заголовочный файл и файл реализации модуля Form. Головной файл с функцией WinMain, как правило, пользователем не изменяется, рекомендуется его не изменять, и обычно он не просматривается.
● Структура головного файла проекта Имеет проект одну форму #include <vcl.h> // visual component library #pragma… USERES (“Project1.res); /макрос, подключающий файл ресурсов (пиктограмма, изображение) USEFORM (“Unit1.cpp”, Form1); // макрос ,подключающий файл формы
WINAPI WinMain (параметры) {try // попытка начать выполнение {инициализация объектов-компонентов инициализация объектов формы } // начало выполнения программы Catch (параметры) // раздел поимка {код, исполняемый в случае ошибки (обработка исключений – аварийных ситуаций), по умолчанию – стандартный обработчик исключений } Return 0; }
● Структура заголовочного файла модуля формы Содержит директиву условной компиляции. #ifndef Unit1H #define Unit1H //-------------- #include….. // директивы помещаются автоматически, они подключают копии файлов , в которых описаны компоненты, переменные, функции, используемые в данном модуле. #include <math.h> // директива пользователя
// объявление класса формы TForm1 Class TForm1 : public TForm {_published: // публикует, открытый раздел, содержит объявление размещенных на форме компонентов и обработчиков событий в них, создается раздел автоматически, вмешиваться в этот раздел запрещено TButton *Button1; TLabel *Label1; Void fastcall Button1Click (TObject*Sender); Private: // пользователь может здесь разместить объявление типов, переменных, функций, недоступных для других модулей. Void __fastcall F1(char ch); // функция доступна только в данном модуле Char ch6; // переменная доступна только в данном модуле Public: __fastcall TForm1 (TComponent *Owner); // конструктор формы // сюда можно поместить объявление типов, переменных, функций, доступных для других классов и других модулей Char ch1; Void __fastcall F2(char ch); // доступны для объектов любых классов и других модулей, но со ссылкой на объект данного класса. };
Extern…..
// после объявления класса формы можно поместить объявление типов, переменных, функций, которые не включаются в класс Form.
Char ch2; // ch2 – глобальная переменная, она доступна в пределах данного модуля, и будет доступна в других модулях, если там повторить ее объявление со спецификацией extern. Void F3 (char ch); // F3 – глобальная функция, она доступна в пределах данного модуля, и будет доступна в других модулях ,если в них повторить ее прототип.
#endif;
● Структура файла реализации модуля Form #include <vcl.h> #pragma #include UnitH // включаются автоматически //----------------- #pragma… #pragma… #pragma… // включаются автоматически // здесь могут быть включены директивы, нужные пользователю #include <math.h> TForm1 *Form1; // указатель на объект формы, включается автоматически // определение конструктора фомы __fastcall TForm1 ::TForm1 (TComponent *Owner) : TForm (Owner); {//тело конструктора пустое, сюда могут быть включены операторы, выполняющие нужные действия при создании форм } // здесь могут быть объявлены глобальные переменные, доступные в данном модуле, и которые будут доступны в других модулях, если там повторить их объявление со спецификацией extern, здесь же могут быть определены функции, не объявленные ранее, и должны быть определены все функции, объявленные в заголовочном файле.
Char ch3; Void F4 (char ch) {Form1->Label1->Caption=Form1->Label1->Caption+ch+Form1->ch1; // функция классу не принадлежит, поэтому доступ к компоненту label через имя объекта form1 и доступ к переменой ch и ch1, которая находится в public класса через имя объекта form1 }
Void __fastcall TForm1 ::F1 (char ch); // f1 – принадлежит классу, находится в private, поэтому доступ по имени компонента {label1->caption=label1->caption+ch+ch1; }
Void __fastcall TForm1 ::F2 (char ch); // f2 – принадлежит классу, находится в public {label1->caption=label1->caption+ch+ch1; }
Void F3 (char ch); // f3 – не принадлежит классу, {form1->label1->caption=form1->label1->caption+ch+form1->ch1; }
Void __fastcall TForm1 ::Button1Click (Tobject *Sender); {ch1=’-‘; ch2=’A’; ch3=’B’; ch4=’C’; label1->caption=””; F1(ch1); F2(ch2); F3(ch3); F4(ch4); Label1->Font->Color=clRed; }
|
Последнее изменение этой страницы: 2019-05-08; Просмотров: 177; Нарушение авторского права страницы