MagicButton Control v. 1.2

Что такое MagicButton?
События, свойства и методы контрола
Что нового?
FAQ
Использование MagicButton (соглашение)
Инфо

» Что такое MagicButton v. 1.2? Next>>

MagicButton версии 1.2.650 - это контрол, позволяющий создавать эффектные текстовые, графические, анимированные кнопки с набором различных методов и свойств.

» События, свойства и методы контрола Next>>

СВОЙСТВА:

Данная версия контрола имеет следующие свойства (описаны не все свойства):

BackColorNormal (OLE_COLOR) - задаёт цвет фона кнопки, в обычном состоянии (без действий).


BackColorMove (OLE_COLOR) - задаёт цвет фона кнопки в момент прохождения над ней курсора мыши ( и получении фокуса).


BorderStyle (0-None; 1-Always3D; 2-OnMove3D; 3-OnMoveFlatFrame) - это свойство задаёт стиль рамки кнопки. В этой версии 4 стиля:
   0-None - кнопка без рамки;

   1-Always3D - выпуклая рамка, которая окаймляет вашу кнопку постоянно;

   2-OnMove3D - трёхмерная рамка, появляющаяся вокруг кнопки в момент прохождения мыши над кнопкой;

   3-OnMoveFlatFrame - XP Фрэйм, всплывающий над кнопкой при прохождении курсора мыши.

Caption (String) - в этом свойстве задаётся собственно текст, который высветится на кнопке.

Enabled (Boolean - True/False) - стандартное событие всех контролов. Определяет включение (True) и отключение (False) контрола MagicButton.

Font (ШРИФТ) - это свойство задаёт шрифт текста, показываемого на кнопке.

PictureNormal (Picture) - здесь вы вставляете фоновое изображение в обычном состоянии контрола.

PictureMove (Picture) - задаёт рисунок фонового изображения, в момент прохождения над кнопкой курсора мыши.

PicturePosition (0-Center; 1-Left; 2-Right; 3-Top; 4-Bottom) - в этом свойстве указывается положение картинки относительно центра на кнопке. Свойство имеет 5 возможных вариаций: 0-Center, 1-Left, 2-Right, 3-Top и 4-Bottom, которые обозначают: центр, лево, право, верх и низ соответственно.

ShowTabFocus (Boolean - True/False) - при получении фокуса (GotFocus), на стандартной кнопке появляется чётная рамка. Так вот это свойство указывает, показывать эту рамку или нет. Кнопка как обычно будет принимать фокус, просто не будет видно TAB-рамки. Это бывает необходимо при создании нестандартных кнопок (ToolBar и др.)

TabStop (Boolean - True/False) - данное свойство, как и во всех других контролах, указывает принимать ли кнопке фокус от кнопки TAB (True) или нет (False).

TextColorNormal (OLE_COLOR) - задаёт цвет текста на кнопке в обычном состоянии.

TextColorMove (OLE_COLOR) - задаёт цвет текста при продвижении мыши над вашей кнопкой.

TextPosition (0-Center; 1-Left; 2-Right; 3-Top; 4-Bottom) - вариации те же, что и у PicturePosition, но это свойство определяет позицию текста на кнопке относительно центра. Так же, как и у PicturePosition, позволяет разместить текст в совершенно разных частях вашей кнопки.

Visible (Boolean - True/False) - видимость/невидимость кнопки на форме вашей программы.

Здесь не были описаны некоторые свойства, доступные большинству стандартных контролов.

СОБЫТИЯ:

События контрола MagicButton:

MagicButton v. 1.2.650 имеет одно нестандартное свойство, которого нет ни у одной кнопки (что вобщем-то и отличает MagicButton 1.2 от других кнопок):

MouseOut () - это событие вызывается при "покидании" мыши поверхности кнопки. Событие не имеет аргументов.

А теперь стандартные события стандартной кнопки в Win32, имеющиеся и в MagicButton (но практически нереализованные во многих кнопках):

Click () - событие, не имеющее аргументов. Вызывается при нажатии и отпускании кнопки мыши (или клавиши).

DragDrop (Source As Control, X As Single, Y As Single) и DragOver (Source As Control, X As Single, Y As Single, State As Integer) - это стандартные события, примениющиеся при перетаскивании (Drag) элементов по форме.

GotFocus () и LostFocus () - события имеющиеся у большинства контролов. GotFocus вызывается при принятии элементом фокуса, а LostFocus ессно при "потере" фокуса.

KeyUp и KeyDown с аргументами (KeyCode As Integer, Shift As Integer) - это событие имеется в обычных кнопках, но в специальных контролах я его пока не встречал, хотя иногда оно бывает просто необходимо.

KeyPress (KeyAscii As Integer) - вызывается при нажатии (Press) клавишы, а в качестве аргумента процедуре передаётся Ascii-код нажатой клавишы.

MouseDown, MouseMove и MouseUp все имеют аргументы (Button As Integer, Shift As Integer, X As Single, Y As Single) - эти свойства обычно не реализуют в контролах кнопки (я почти не встречал таких). Обычно разработчики полагают, что одного только события Click бывает достаточно.

Ну и Validate (Cancel As Boolean) - оно есть везде.

» Что нового? (Whats new?) Next>>

Нововведения этой версии (v. 1.2.650 )контрола:

1. Контрол оптимизирован под NT - теперь он одинаково смотрится на всех операционных системах (включая NT, Me, XP)!

2. Добавлены события KeyUp, KeyDown и KeyPress для клавиатуры - теперь можно отслеживать нажатия на клавиатуру.

3. Свойство Border 3D (Boolean - True/False), из предыдущей версии контрола, было заменено на BorderStyle, имеющее целых четыре стиля, описанных выше. Следовательно пропали лишние свойства FlatFrameOnMove и Border3DOnMove, которые были объединены в одно единое.

4. Появились новые свойства, которые определяют позицию фонового рисунка (PicturePosition) и текста на кнопке (TextPosition) относительно центра - теперь фоновый рисунок и текст на кнопке можно разместить в любой части рисунка.

5. В этой, новой версии, появилась TAB-рамка, которая имеется у стандартной Win32 кнопки, но которой нет ни у одной другой кнопки-контрола - теперь можно видеть, на какой кнопке стоит фокус и работать без мыши на клавиатуре.

6. Также появилось свойство, имеющее прямое отношение к предыдущему нововведению - это свойство ShowTabFocus. То есть вы можете легко убрать или снова добавить TAB-рамку на кнопку.

Благодаря введением новых событий и свойств, этот контрол стал легко управляемым с клавиатуры. Этому способствовало введение понятия TAB-рамки и событий KeyUp, KeyDown и KeyPress.

» FAQ Next>>

1. Как мне поместить надпись на кнопке в правый нижний угол, а фоновую картинку в левый верхний? Пытаюсь такое сделать, а получается какая-то абракадабра.

  Ответ:
Сначала поместите на кнопку рисунок и введите текст. Затем установите TextPosition на 2-Right, а потом на 4-Bottom. В результате этого действия текст на кнопке сначала сместится вправо, а затем вниз. То же самое делаете с фоновым рисунком. Переносите влево, а потом вверх (или наоборот).

2. Мне нужно, чтобы при наведении кнопки мыши фоновый рисунок не изменялся. Что мне сделать?

  Ответ:
Вам нужно установить в свойство PictureNormal и PictureMove один и тот же рисунок. Контрол проверит и если оба рисунка равны, то он заменять фоновый рисунок не будет.

» Использование MagicButton (лицензионное соглашение) Next>>

Автор не несёт никакой ответственности за какие-нибудь последствия и проблемы связанные с использованием контрола.

Контрол - бесплатный и разрешается его бесплатное распространение. Можно распространять его как отдельный контрол, так и как контрол, используемый в бесплатной программе.

В любом случае, вам необходимо сообщить автору на e-mail: adaniyar@yahoo.com или в крайнем случае на visualbasic@list.ru.

Контрол постоянно обновляется и решаются баги. Поэтому вы ДОЛЖНЫ получить последнюю версию контрола. Читайте ниже.

ВНИМАНИЕ! КУЛ! Вы можете подписаться на получение новых версий контрола. Для этого необходимо послать e-mail автору с Subject="MagicButton New Versions".

Также, последнюю версию контрола можно всегда найти на: http://visualbasic.boom.ru/ready/controls/index.html.

» Инфо

Автор: Daniyar Atadjanov

e-mail: adaniyar@yahoo.com

Web-site: visualbasic.boom.ru

Последняя модификация этой версии контрола: 3.05.2003.

СПАСИБО!