Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Компоненты Internet 3 страница




Табл.2.2 На дополнительном поле клавиатуры
при выключенном индикаторе NumLock

Клавиша Десят. код HEX код Символьное имя
    0x60 VK_NUMPAD0
    0x61 VK_NUMPAD1
    0x62 VK_NUMPAD2
    0x63 VK_NUMPAD3
    0x64 VK_NUMPAD4
    0x65 VK_NUMPAD5
    0x66 VK_NUMPAD6
    0x67 VK_NUMPAD7
    0x68 VK_NUMPAD8
    0x69 VK_NUMPAD9
*   0x6A VK_MULTYPLY
+   0x6B VK_ADD
-   0x6C VK_SUBTRACT
.   0x6D VK_DECIMAL
/   0x6E VK_DIVIDE
n N   0x4E ---
o O   0x4F ---

 

Параметр Shift является множеством, которое может быть пустым или включать символьные значения, описываемые в табл. 3.

Таблица 3
Символьное значение Назначение
ssShift Нажата или отпущена клавиша Shift
ssAlt Нажата или отпущена клавиша Alt
ssCtrl Нажата или отпущена клавиша Ctrl

Другое событие — OnKeyPress наступает, если компонент находится в фокусе при нажатии пользователем клавиши символа. Параметр Key в обработчике этого события имеет тип char и соответствует символу нажатой клавиши. Функциональные клавиши и специальные клавиши типа Shift, Alt и Ctrl не вызывают этого события. Нажатие таких комбинаций клавиш как, например, Shift+A, генерирует только одно событиеOnKeyPress, при котором параметр Key равен "А". Поскольку параметр Key передается в обработчик события как переменная, его можно изменять, передавая для дальнейшей обработки другой символ. В некоторых программах этот прием полезно использовать.
Для того, чтобы распознавать комбинации клавиш или клавиши, не соответствующие символам, необходимо использовать обработчики событий OnKeyDown и OnKeyUp.
Следует отметить, что событие OnKeyPress заведомо наступает, если нажимается только клавиша символа или клавиша символа при нажатой клавише Shift. Если же клавиша символа нажимается одновременно с какой-то из вспомогательных клавиш, то событие OnKeyPress может не наступить (произойдут только событияOnKeyDown при нажатии и OnKeyUp при отпускании) или если и наступит, то укажет на неверный символ. Например, при нажатой клавише Alt событие OnKeyPress при нажатии символьной клавиши не наступает, а при нажатой Ctrl событие OnKeyPress при нажатии символьной клавиши наступает, но символ не распознается.
Событие OnKeyUp наступает, если компонент находится в фокусе при отпускании пользователем любой ранее нажатой клавиши, включая функциональные и вспомогательные, такие как Shift, Alt и Ctrl. В обработчик кроме параметра Sender, указывающего на компонент, в котором произошло событие, передаются также параметры Key и Shift, описанные выше.
Событие OnKeyUp наиболее удобно для распознавания нажатых клавиш и комбинации клавиш. Необходимо обратить внимание на то, что параметр Key для обработчика данного события имеет тип word в отличие от типаchar для события OnKeyPress. Поэтому допускается параметр Key сравнивать с целым числом, соответствующим коду символа или применять к параметру Key функцию char, переводящую его в символ для сравнения с символами. К тому же надо учитывать, что виртуальный символьный код одинаков для символов в верхнем и нижнем регистре и для различной раскладки клавиатуры (русской или английской).
Рассмотрим способ определения кода нажатой клавиши на примере небольшой программы. Создайте в среде разработки Borland C++ Builder 6 новое приложение и поместите на форму один компонент Label1. В инспекторе кодов для формы Form1 на закладке событий щелкните дважды по полю правее OnClick и введите в заготовку обработчика события программный код:

Label1->Caption = "Было событие OnClick";


Этот код программы позволит изменять свойство Caption компонента на сообщение о возникновении событияOnClick на форме приложения.
Аналогично введите для формы Form1 код обработки события KeyDown:


if(Shift.Contains(ssAlt)) Label1->Caption = "Alt";
if(Shift.Contains(ssCtrl)) Label1->Caption = "Ctrl";
if(Shift.Contains(ssShift)) Label1->Caption = "Shift";
switch (Key)
{
case VK_INSERT: Label1->Caption = "Insert"; break;
case VK_CAPITAL: Label1->Caption = "CapsLock"; break; case VK_NUMLOCK: Label1->Caption = "NumLock"; break;
}

и код обработки события KeyPress:

switch (Key)
{
case ' ': Label1->Caption = "Был нажат пробел";
break;
default: Label1->Caption = Key;
break;
}


Теперь запустите приложение на выполнение и нажимайте любые клавиши на клавиатуре, а также пощелкайте левой кнопкой мышки по форме приложения. В результате вы увидите реакцию программы на ваши действия.
Событие OnExit наступает в момент потери элементом фокуса при его переключении на другой элемент. Это событие не наступает при переключениях между формами или между приложениями. Значение свойства ActiveControl изменяется прежде, чем происходит событие OnExit. При переключениях между элементами, расположенными в разных контейнерах, например, на разных панелях, событие OnExit сначала наступает для элемента, а потом для содержащего его контейнера. Это противоположно последовательности событий OnEnter, которые при переключении из другого контейнера на компонент данного контейнера наступают сначала для контейнера, а потом для компонента.
Создайте новое приложение и поместите на него три компонента Edit из закладки Standard. Создайте обработчик события OnEnter для компонента Edit2 и вставьте в него программный код:

ShowMessage("Фокус на элементе");

Теперь создайте обработчик события OnExit для этого же компонента и вставьте в него программный код:

ShowMessage("Фокус переключен");

Запустите приложение и нажимайте клавишу табуляции. Фокус будет переключаться между компонентами Edit, и при переходе через Edit2 на экране будет формироваться сообщение о состоянии фокуса.
Далее рассмотрим события, связанные с работой мыши.
Событие OnMouseDown наступает в момент нажатия пользователем клавиши мыши над компонентом. Имеется также парное к нему событие OnMouseUp, наступающее при отпускании нажатой кнопки мыши над объектом.
Обработка событий OnMouseDown и OnMouseUp используется для операций, требуемых при нажатии и отпускании пользователем какой-либо кнопки мыши. Обработчики этих событий имеют параметры Sender, Shift, Button, X и Y. С первыми двумя параметрами мы уже знакомы из описания предыдущих событий. Значения параметра Button определяют, какая кнопка мыши нажата: mbLeft — левая, mbRight — правая, mbMiddle — средняя. Параметры X и Y определяют координаты указателя мыши в клиентской области компонента.
Создайте новое приложение и поместите на его форму два компонента Label. Для формы Forml создайте обработчик события OnMouseDown и введите в него следующие строки программного кода:

if(Button == mbLeft) Label1->Caption = "Нажата левая кнопка мыши";
if(Button == mbRight) Label1->Caption = "Нажата правая кнопка мыши";
if(Button == mbMiddle) Label1->Caption = "Нажата средняя кнопка мыши";
Label2->Caption = "Координаты мыши: X="+string(X)+" Y="+String(Y);

Запустите приложение и пощелкайте разными кнопками мыши на его форме. Вы увидите сообщения программы о ваших действиях и координаты курсора мыши.
Событие OnMouseMove наступает при перемещении курсора мыши над компонентом.
Обработчик события OnMouseMove вставляется в программу, если необходимо произвести какие-то операции при перемещении курсора мыши над компонентом. Параметр Shift, являющийся множеством, содержит элементы, позволяющие определить, какие кнопки мыши и вспомогательные клавиши (Shift, Ctrl или Alt) нажаты в этот момент. Параметры X и Y определяют координаты указателя мыши в клиентской области компонента.
Добавьте в предыдущую программу обработчик события OnMouseMove для формы Forml и вставьте в него следующую строку программного кода:

Label2->Caption = "Координаты мыши: X="+String(X)+" Y="+Strlng(Y);

Вновь запустите приложение и проверьте, как ведет себя программа, когда вы перемещаете курсор мыши над формой и другими компонентами.
Следующие описываемые события относятся к графическим компонентам и перемещению объектов.
Событие OnChange связано с графическим компонентом канвы (рамки) и наступает после изменения графического объекта. Обработчик события OnChange должен осуществить необходимые операции при изменении графического объекта и отразить его новые установки. Событие происходит сразу после изменения изображения на канве. При вызове любого метода рисования осуществляется следующая последовательность операций:
• происходит событие OnChanging;
• вызванный метод канвы TCanvas осуществляет изменения в изображении;
• наступает событие OnChange.
Событие канвы OnChange наступает при изменении именно самого изображения, а не свойств канвы. Такие свойства канвы, как объекты Font (шрифт). Brush (кисть) и Реп (перо), имеют свои собственные события OnChange.
Событие OnPaint наступает, когда приходит сообщение Windows о необходимости перерисовать испорченное изображение. Изображение может испортиться из-за временного перекрытия данного окна другим окном того же или постороннего приложения. Обработчик данного события должен перерисовать изображение. При перерисовке изображения канвы Canvas можно использовать свойство ClipRect, которое указывает область канвы, внутри которой изображение испорчено.
События OnProgress наступают во время медленных процессов изменения графического изображения, таких как загрузка, сохранение, трансформация. Заготовка его обработчика приведена ниже:

void __fastcall TForml::
Image1Progress(T0bject *Sender, TProgressStage Stage, BYTE PercentDone, bool RedrawNow, const TRect &R, const AnsiString Msg)
{
}

Эти события позволяют построить в приложении индикатор хода процесса, обеспечивающий обратную связь с пользователем. Разработчики новых компонентов могут генерировать события OnProgress, вызывая защищенный метод Progress. Параметр Stage указывает стадию процесса — начало, продолжение, окончание. Он может принимать значения psStarting, psRunning и psEnding соответственно. Если приложение предусматривает индикацию процесса, можно создавать индикатор при Stage = psStarting, изменять его показания, пока Stage = = psRunning, и закрывать при Stage = = psEnding. Параметр PercentDone показывает, какая примерно часть процесса выполнена. Этот параметр может использоваться в индикаторе процесса. Параметр RedrawNow указывает на то, возможно ли в данный момент успешно отобразить изображение на экране. Параметр R указывает область изображения, которая изменена и нуждается в перерисовке. Параметр Msg содержит краткую справку о протекающем процессе, например, Loading (загрузка), Storing (запоминание) или Reducing colours (уменьшение цветов). Строка Msg может быть и пустой.
Событие OnDragDrop наступает в момент отпускания над компонентом другого перетаскиваемого компонента. В обработчике данного события необходимо описать, что в этот момент должно произойти. Параметр Source соответствует перетаскиваемому объекту, а параметр Sender — объекту, над которым другой объект был отпущен. Параметры X и Y содержат координаты позиции курсора мыши над компонентом в системе координат клиентской области этого компонента.
Событие OnDragOver происходит в момент, когда перетаскиваемый объект пересек границу данного компонента и оказался внутри его контура. Заканчивается событие, когда объект покидает компонент, пересекая его границу. Обработчик события OnDragOver используется для того, чтобы дать сигнал о готовности компонента принять перетаскиваемый объект в том случае, если пользователь отпустит его над данным компонентом. Если компонент готов принять объект, то в обработчике надо задать значение параметра Accept, равное True. Впрочем, это значение по умолчанию равно True, так что его можно не задавать. Обработчик может быть и пустым, что будет означать готовность компонента принять любой объект, но даже пустой обработчик нужен, поскольку иначе сообщения о приеме компонента приложение не получит.
Во время перетаскивания над компонентом объекта, который может быть принят, форма курсора мыши может изменяться, сигнализируя пользователю о готовности компонента принять объект. Для обеспечения этого необходимо во время проектирования задать соответствующее значение свойства компонента DragCursor. Параметр Source обработчика события определяет перетаскиваемый объект, а параметр Sender — сам компонент. Параметры X и Y дают координаты точки экрана в пикселях. Параметр State типа TDragStateonределяет состояние перетаскиваемого объекта по отношению к другим объектам. Значения этого параметра приведены в табл. 4.

Таблица 4
Значение Описание
dsDragEnter Курсор мыши входит в пределы компонента
dsDragMove Курсор мыши перемещается в пределах компонента
dsDragLeave Курсор мыши выходит за пределы компонента


Событие OnStartDrag наступаем когда пользователь нажал левую кнопку мыши над объектом и, не отпуская ее> начал смещать курсор мыши, т. е. начал перетаскивание. Обработчик события OnStartDrag позволяет описать какие-либо специальные действия, необходимые перед началом перетаскивания. Параметр Sender является тем компонентом, который должен перетаскиваться или который содержит объект будущего перетаскивания. Переменная DragObject по умолчанию является пустой, т. е. имеет значение NULL. Это означает, что переноситься будет сам компонент или его объект, в этом случае автоматически создается объект типа TDragControlObject, с которым среда разработки Borland C++ Builder 6 осуществляет весь процесс перетаскивания. Обработчик может создавать и новый объект перетаскивания, в котором определен какой-нибудь особый вид курсора и т. п.
Событие OnEndDrag наступает при любом окончании процесса перетаскивания компонента, которое может быть успешным (компонент перетащен в приемник) или безуспешным (компонент отпущен над формой или компонентом, неспособным его принять). Данное событие наступает в момент прерывания или окончания перетаскивания компонента, оно наступает в перетаскиваемом компоненте. Его обработка не требуется для осуществления процесса перетаскивания. Соответствующий обработчик может быть написан, если требуется какое-либо действие или сообщение, подтверждающее результат перетаскивания, или какая-то реакция в перетаскиваемом компоненте. Параметр Sender обработчика — это сам объект перетаскивания. Параметр Target является компонентом-приемником, если объект был им принят, или пустым, если перетаскивание закончилось неудачей. Параметры X и Y дают координаты экрана в пикселях.

В этой статье рассказывается о назначении и применении на практике некоторых методов визуальных компонентов.

 


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

 

 

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


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

 

Рис.1

 


Задайте свойство названия Caption для формы и кнопок в соответствии с этим же рисунком. Щелкните дважды левой кнопкой мыши по компоненту первой кнопки Button1 и впишите для нее код обработки событияOnClick в виде программной строк ListBox1->Items->Add(String(i++));


Эта строка содержит метод Add, который позволит добавить в компонент ListBox1 элемент списка, представляющий собой строку, формирующуюся из переменной i с помощью функции String. Каждый раз при вызове данной программной строки с методом Add переменная i будет увеличивать свое значение благодаря тому, что после нее вписан оператор автоинкремента (увеличения значения на единицу) "++". Описание переменной с присвоением ей начального значения в виде строки

int i = 0;

необходимо вписать в программу в инспекторе объектов сразу после строк с описанием включений #include. В этом случае переменная будет доступна любому обработчику программы. Если описать эту переменную в самом обработчике события, она станет локальной (недоступной другим обработчикам) и будет инициализироваться каждый раз при формировании этого события.
Аналогично сформируйте заготовку кода обработки события OnClick для компонента кнопки Button2 и впишите в него программную строку
ListBox1->Hide();
Эта строка содержит метод Hide, который скрывает изображение компонента на форме от пользователя программы.
Подобным образом впишите в код обработки события OnClick для компонента кнопки Button3 программную строку
ListBox1->Show();
Эта строка содержит метод Show, который показывает изображение компонента на форме для пользователя программы.
Наконец, впишите код обработки события OnClick для компонента кнопки Button4 в виде программной строки
if(i>0) ListBox1->Items->Delete(--i);
Эта строка содержит метод Delete, который удаляет указанный элемент списка из компонента ListBox1. Обратите внимание на то, что в качестве номера удаляемого элемента списка мы использовали ту же переменную i, которая применялась при добавлении элементов списка в компонент. При этом перед ее использованием она автоматически декрементируется (уменьшает свое значение на единицу) благодаря применению оператора "--". Метод удаления имеет смысл выполнять только в том случае, если элементы в списке есть, т. е. имеется что удалять. Для проверки данного условия в программную строку включен оператор сравнения переменной индекса элементов списка с нулем if(i > 0), который позволяет выполнять удаление элемента из списка только при натуральном значении переменной i, т. е. когда элементы в списке есть. Сохраните созданный проект и запустите приложение на выполнение, после чего проверьте, как оно работает.


Теперь можно рассмотреть некоторые детали методов, которые часто используются в программах.
Метод Add применяется к компонентам, имеющим списки или строки. Метод возвращает при выполнении индекс добавленного элемента. Например, программная строка
i = ListBox1->Items->Add("Новый элемент списка");
присвоит переменной i значение возвращаемого параметра. Индекс первого элемента списка всегда равен нулю. Данный метод увеличивает значение свойства Count (номер элемента) на единицу. Если значениеCount равно значению свойства Capacity (размер списка), то увеличивается значение Capacity и перераспределяется память под новые элементы. Напомню, что доступ к свойствам Count и Capacityосуществляется с помощью строк ListBox1->Item->Count и ListBox1->Item->Capacity. Используя данные свойства можно исключить в предыдущей программе переменную i, сохранив при этом все ее функции. Предлагаю читателям проделать это самостоятельно для получения собственного опыта.
Метод Hide делает компонент невидимым, задавая свойству Visible компонента значение False. Если компонент является контейнером для других компонентов, то эти дочерние компоненты также делаются невидимыми. Несмотря на то, что компонент становится невидимым, его свойства и методы остаются доступными в программе.
Метод Show делает видимым ранее невидимый компонент. Он задает значение True свойству Visibleкомпонента и проверяет, является ли видимым родительский компонент.
Метод Delete удаляет из списка элемент с указанным индексом.
Метод CanFocus определяет, может ли компонент получать сообщения пользователя, т. е. может ли он получать фокус. Функция возвращает True, если у компонента и всех его родителей свойства Visible и Enabled установлены в True. В противном случае возвращается значение False.
Метод ChangeScale(M,D) используется для изменения масштаба компонентов. При его применении масштабируются такие свойства компонента, как Тор и Left, определяющие его местоположение, а такжеWidth и Height, определяющие его размер.
Параметры метода М и D определяют соотношение новых размеров компонентов к их прежним размерам. Например, чтобы уменьшить размеры компонента до 50 % начального значения, нужно задать М равным 50, a D равным 100. То же самое можно сделать, задав М = 1 и D = 2. Если вы хотите увеличить размер, нужно задать значение М больше, чем значение D. Так, например, программная строка ChangeScale(2,1); увеличит размеры компонентов в два раза.
Следующая группа описываемых методов связана с графическими компонентами и предназначена для рисования. Рассмотрим их применение на примере программы.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных