Разделы инструкций

В сети

Пользователей: 106
Из них просматривают:
Аналоги: 35. Даташиты: 19. Инструкции: 4. Магазин: 2. Новости: 19. Остальное: 4. Партнёры: 1. Программы: 2. Теги: 1. Торрент: 2. Форум: 13. Чат: 4.
Участников: 6
Гостей: 100

an , KT315 , alex01981 , Google , wolf170571 , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

Оглавление

Глава 23. Методы компонентов

В этой главе рассказывается о назначении и применении на практике некоторых методов визуальных компонентов.
Наряду с обработчиками событий среда разработки Borland C++ Builder 6 позволяет использовать при написании программы методы компонентов. Мы уже применяли в рассмотренных программах некоторые из них, например,
LoadFromFile, SaveToFileи др. В отличие от обработчиков событий, методы не вызываются в результате каких-либо действий пользователя, а выполняются при достижении программой строки, в которой они записаны.
Методы вставляются в программу самим разработчиком по мере необходимости, например, для отображения рисунка на экране монитора, работы с файлами и т. д. По сути дела методы являются функциями или подпрограммами. Так же, как свойства и события, одни и те же методы могут быть применимы для разных типов компонентов. В табл. 23.1 приведено краткое описание большинства существующих методов.


Таблица 23.1. Краткое описание методов компонентов

МетодОписание
AddДобавляет новый элемент в список
AssignКопирует изображение одного графического объекта в другой
BeginDragИспользуется при перетаскивании компонента
BringToFrontПозволяет   изменять   последовательность   перекрытия компонентов
BrushCopyКопирует часть изображения битовой матрицы на канву
CanFocusОпределяет, может ли компонент получать сообщения пользователя
ChangescaleИспользуется для изменения масштаба компонента
ChordРисует заполненную замкнутую фигуру, ограниченную дугой окружности или эллипса и хордой
ClassNameВозвращает имя типа объекта
ClearОчищает список или текст
ClientToScreenПреобразует координаты клиентской области в координаты экрана
ContainsControlОпределяет, является ли указанный компонент прямым или косвенным наследником данного оконного компонента
ControlAtPosОпределяет, какой дочерний компонент имеется в указанной позиции
CopyRectКопирует часть изображения
DeleteУдаляет элемент с указанным индексом из списка
DisableAlignВременно запрещает выравнивание дочерних компонентов
DormantСоздает изображение битовой матрицы в памяти
DrawРисует   графическое   изображение   в  указанную позицию канвы
DrawFocusRectРисует изображение прямоугольника в виде, используемом для отображения рамки фокуса, с помощью операции XOR
DisableAlignВременно запрещает выравнивание дочерних компонентов
EllipseРисует заполненный эллипс или окружность
ExpandУвеличивает емкость списка TnnaTList
FillRectЗаполняет указанный прямоугольник канвы, используя текущее значение Brush
FindNextControlВозвращает следующий в последовательности табуляции оконный дочерний компонент
FloodFillЗакрашивает текущей кистью замкнутую область канвы, ограниченную определенным цветом
FocusedОпределяет, находится ли оконный элемент в фокусе
FrameRectРисует на канве текущей кистью прямоугольную рамку
FreeОсвобождает память, занимаемую объектом
GetTabOrderListСтроит список дочерних оконных компонентов в последовательности табуляции
HandleAllocatedПроверяет наличие дескриптора окна компонента
HandleNeededСоздает дескриптор окна, если до этого он не существовал
HideДелает компонент невидимым
IndexOfОпределение первого вхождения в список заданного элемента
InsertВставляет элемент в заданную позицию списка
InvalidateСообщает Windows о необходимости полностью перерисовать компонент
LineToРисует на канве прямую линию
LoadFromClipboardFormatЗагружает изображение из буфера обмена в формате Clipboard
LoadFromFileЗагружает изображение, хранящееся в файле
LoadFromResourcelDЗагружает битовую карту из файла ресурсов по указанному идентификатору
LoadFromResourceNameЗагружает битовую карту из файла ресурсов по указанному имени
LoadFromStreamЗагружает графическое изображение из указанного потока
LockБлокирует канву, запрещая рисовать на ней
MoveМеняет текущую позицию элемента в списке на позицию, заданную в параметрах метода
MoveToУстанавливает позицию пера на позицию, заданную в параметрах метода
PieРисует  заполненную  замкнутую  фигуру   в  виде сегмента окружности или эллипса
PolygonРисует на канве заполненную замкнутую фигуру в виде многоугольника
PolylineРисует на канве ломаную линию
DisableAlignВременно запрещает выравнивание дочерних компонентов
RectangleРисует на канве закрашенный прямоугольник
RefreshПерерисовывает изображение компонента на экране
RemoveУдаляет элемент с заданным значением из списка TList
RepaintПерерисовывает изображение компонента на экране
ReplaceDockedControlВстраивает компонент на место другого компонента
RoundRectРисует на канве прямоугольную рамку со скругленными углами
SaveToClipboardFormatСоздает копию изображения в формате Clipboard
SaveToFileСохраняет графическое изображение в файле
SaveToStreamСохраняет графическое изображение в потоке
ScaleByМасштабирует оконный элемент и все содержащиеся в нем компоненты
ScaleControlsМасштабирует дочерние компоненты оконного элемента, не изменяя масштаба самого элемента
ScreenToClientПреобразует координаты экрана в координаты клиентской области компонента
ScrollByСдвигает содержимое оконного элемента
SelectFirstПередает фокус дочернему компоненту, первому в последовательности табуляции
SelectNextПередает фокус дочернему компоненту, следующему в последовательности табуляции за указанным компонентом
SendCancelModeПрерывает модальное состояние элемента управления
SendToBackПереносит компонент ниже других компонентов
SetBoundsУстанавливает одновременно свойства Left, Top, Width и Height
SetChildOrderИзменяет позицию компонента в списке дочерних компонентов оконного элемента
SetFocusПередает фокус элементу
SetZOrderПеремещает компонент на вершину или вниз Z-последовательности
ShowДелает видимым невидимый компонент
StretchDrawРисует графическое изображение в указанную прямоугольную область канвы, подгоняя размер изображения под заданную область
TextExtentВозвращает длину и высоту в пикселах текста, который предполагается написать на канве текущим шрифтом
TextHeightВозвращает высоту в пикселах текста, который предполагается написать на канве текущим шрифтом
TextoutПишет указанную строку текста на канве, начиная с указанной позиции
TextRectПишет указанную строку текста на канве, начиная с указанной позиции и усекая текст, выходящий за пределы указанной прямоугольной области
TextWidthВозвращает в пикселах длину текста, который предполагается написать на канве текущим шрифтом
TryLockБлокирует канву, если она не была блокирована, не разрешая другим нитям много поточного приложения рисовать на ней
UnlockУменьшает на единицу значение свойства LockCount, способствуя тем самым разблокировке канвы, когда LockCount станет равным нулю
UpdateПерерисовывает компонент

 

Рассмотрим более подробно назначение и описание некоторых наиболее часто используемых методов с примерами их применения.
Начнем с создания небольшой программы, которая наглядно покажет нам, как применяются методы Add (Добавить), Hide (Скрыть), show (Показать) и Delete (Удалить). Создайте новое приложение и поместите на его форму компонент ListBox и четыре кнопки типа Button. Измените размеры формы и разместите на ней компоненты так, как показано на рис. 23.1.

 

Окно формы программы

Рис. 23.1. Окно формы программы

 

Задайте свойство названия — Caption для формы и кнопок в соответствии с этим же рисунком. Щелкните дважды левой кнопкой мыши по компоненту первой кнопки Button 1 и впишите для нее код обработки события OnCIick в виде программной строки (листинг 23.1).

 

Листинг 23.1. Код обработки события OnClick для кнопки Button1

ListBox1->Items->Add (String (i++)) ;

 

Эта строка содержит метод Add, который позволит добавить в компонент ListBox1 элемент списка, представляющий собой строку, формирующуюся из переменной i с помощью функции string. Каждый раз при вызове данной программной строки с методом Add переменная i будет увеличивать свое значение благодаря тому, что после нее вписан оператор автоинкремента ++ (увеличение значения на единицу). Описание переменной с присвоением ей начального значения в виде строки int i=0; необходимо вписать в программу в инспекторе объектов сразу после строк с описанием включений #inciude. В этом случае переменная будет доступна любому обработчику программы. Если описать эту переменную в самом обработчике события, то она станет локальной (недоступной другим обработчикам) и будет инициализироваться каждый раз при формировании этого события.
Аналогично сформируйте заготовку кода обработки события OnClick для компонента кнопки Button2 и впишите в него программную строку (листинг 23.2).


Листинг 23.2. Код обработки события OnClick для кнопки Button2

ListBox1->Hide();

 

Эта строка содержит метод Hide, который скрывает изображение компонента на форме от пользователя программы.
Подобным образом впишите в код обработки события OnClick для компонента кнопки Button3 программную строку (листинг 23.3)

 

Листинг 23.3. Код обработки события OnClick для кнопки Button3

ListBox1->Show ();


Эта строка содержит метод show, который показывает изображение компонента на форме для пользователя программы.

 

Наконец впишите код обработки события OnClick для компонента кнопки Button4 в виде программной строки (листинг 23.4).

 

Листинг 23.4. Код обработки события OnClick для кнопки Button4

if(i>0)   ListBox1->Items->Delete(--i);

 

Эта строка содержит метод Delete, который удаляет указанный элемент списка из компонента ListBox1.
Обратите внимание, что в качестве номера удаляемого элемента списка мы использовали ту же переменную i, которая применялась при добавлении элементов списка в компонент. При этом перед ее использованием она автоматически декрементируется (уменьшает свое значение на единицу) благодаря применению оператора "--".
Метод удаления имеет смысл выполнять только в том случае, если элементы в списке есть, то есть имеется, что удалять. Для проверки данного условия в программную строку включен оператор сравнения переменной индекса элементов списка с нулем: if (i>0), который позволяет выполнять удаление элемента из списка только при натуральном значении переменной i, то есть когда элементы в списке есть.

 

Сохраните созданный проект и запустите приложение на выполнение. После чего проверьте, как оно работает.

3
<< Меню >>  
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Разное

Во время ремонта телевизора не ставьте настольную лампу на его корпус.

Интересно

Канифоль можно изготовить самому, собрав в лесу сосновую (не еловую!) смолу и перетопив ее в консервной банке.

Похожие инструкции