Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive Объектно-ориентированное программирование на С++ - eDrive

edrive.narod.ru
from edrive.narod.ru More from this publisher
13.01.2015 Views

78 Для динамического подключения пакетов вызывающее приложение следует оснащать функциями LoadPackage и FreePackage вместо LoadLibrary и FreeLibrary. Ресурсы Ресурсы – это битовые образы, хранящиеся непосредственно в исполнительном файле, а не отдельно от приложения. При создании приложения ресурсы помещаются в файл ресурсов проекта .RES автоматически или командой SaveToResource и могут загружаться из него командой LoadFromResource. Ресурсы создаются с помощью встроенного в C++Builder графического редактора Image Editor и им же включаются в файл ресурсов приложения как графические образы Bitmaps, указатели мыши Cursors и значки Icons. Этот же редактор используется для создания отдельных файлов типов .RES, .BMP, .ICO, .CUR, которые впоследствии могут быть подключены к другим проектам. Например, для добавления в текущий файл ресурсов нового значка надо в меню File.Open редактора Image Editor открыть файл ресурсов проекта (.RES). Далее через меню Resource.New.Icon создать новый значок и, выделив его, открыть окно редактора (Resource.Edit), нарисовать или импортировать значок и закрыть окно. Через меню Resource.Rename назвать значок, например, MYICON. и сохранить его. Аналогичным образом через меню Resource.New.Cursor создать новый курсор, открыть окно редактора, нарисовать или импортировать курсор и закрыть окно. Через меню Resource.Rename назвать курсор, например, MYCURSOR. В заключение остается сохранить файл ресурсов и закрыть Image Editor. Для создания нового файла ресурсов с графическим образом дается команда New.Resource File в меню File. В окне ресурсов новый рисунок формируется по команде Resource.New.Bitmap редактором Resource.Edit или копируется через буфер обмена и сохраняется (File.Save) в одной папке с приложением. Пользуясь Image Editor, таким же путем создаются отдельные файлы значков и курсоры.

79 Для подключения нового файла ресурсов к проекту вводится директива препроцессора #pragma resource "имяФайла.res" и дается команда загрузки, например: Image1–>LoadFromResourceName ((int)HInstance, “имяРесурса”) Примеры подключения новых курсоров и значков: const TCursor cur = 5; // свободная константа Screen–>Cursors[cur] = LoadCursor (HInstance, "MYCURSOR"); Cursor = cur; // новый курсор Icon–>Handle = LoadIcon (HInstance, "MYICON"); // новый значок Значки и курсоры из отдельных файлов подключаются методом LoadFromFile (имяФайла.ico) объекта Icon и функцией LoadCursorFromFile (имяФайла.cur) вместо LoadCursor. Для работы с обновленным файлом ресурсов следует закрыть приложение, затем вновь открыть и перестроить его. Потоки Потоки – это отдельно работающие части одной программы. Многие программы используют несколько потоков, среди которых можно выделить первичный поток, отвечающий за создание окон и обработку сообщений, и вторичные потоки, в которых выполняются фоновые операции: загрузка больших файлов, проведение вычислений и т. п. В С++Builder потоками управляет абстрактный класс TThread, и каждый вторичный поток представляет отдельный экземпляр наследника этого класса. Поток создается через меню File.New на базе шаблона TThread Object в виде модуля без формы и кроме обычного конструктора содержит заготовку исполнительного метода Execute. В отличие от конструктора формы, конструктор потока имеет параметр CreateSuspended. Когда он установлен (true), созданный поток сразу не запускается, а ожидает вызова стартового метода Resume. В противном случае сразу вслед за созданием происходит запуск потока. Наиболее распространенные характеристики класса TThread приведены в табл. 16.

79<br />

Для подключения нового файла ресурсов к проекту вводится директива<br />

препроцессора #pragma resource "имяФайла.res" и дается команда загрузки,<br />

<strong>на</strong>пример:<br />

Image1–>LoadFromResourceName ((int)HInstance, “имяРесурса”)<br />

Примеры подключения новых курсоров и з<strong>на</strong>чков:<br />

const TCursor cur = 5;<br />

// свобод<strong>на</strong>я константа<br />

Screen–>Cursors[cur] = LoadCursor (HInstance, "MYCURSOR");<br />

Cursor = cur;<br />

// новый курсор<br />

Icon–>Handle = LoadIcon (HInstance, "MYICON"); // новый з<strong>на</strong>чок<br />

З<strong>на</strong>чки и курсоры из отдельных файлов подключаются методом<br />

LoadFromFile (имяФайла.ico) объекта Icon и функцией LoadCursorFromFile<br />

(имяФайла.cur) вместо LoadCursor.<br />

Для работы с обновленным файлом ресурсов следует закрыть приложение,<br />

затем вновь открыть и перестроить его.<br />

Потоки<br />

Потоки – это отдельно работающие части одной программы. Многие<br />

программы используют несколько потоков, среди которых можно выделить<br />

первичный поток, отвечающий за создание окон и обработку сообщений, и<br />

вторичные потоки, в которых выполняются фоновые операции: загрузка<br />

больших файлов, проведение вычислений и т. п.<br />

В <strong>С++</strong>Builder потоками управляет абстрактный класс TThread, и каждый<br />

вторичный поток представляет отдельный экземпляр <strong>на</strong>следника этого<br />

класса.<br />

Поток создается через меню File.New <strong>на</strong> базе шабло<strong>на</strong> TThread Object в<br />

виде модуля без формы и кроме обычного конструктора содержит заготовку<br />

исполнительного метода Execute. В отличие от конструктора формы, конструктор<br />

потока имеет параметр CreateSuspended. Когда он установлен (true),<br />

созданный поток сразу не запускается, а ожидает вызова стартового метода<br />

Resume. В противном случае сразу вслед за созданием происходит запуск<br />

потока.<br />

Наиболее распространенные характеристики класса TThread приведены<br />

в табл. 16.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!