Введение в ABCButtons: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Метка: редактор вики-текста 2017
Строка 1:
ABCButtons - модуль для создания кнопок на PascalABC.NET. Основан на ABCObjects.
 
=Класс ButtonABC=
{{Внимание|Данный модуль является специфическим для '''PascalABC.NET''' и не поддерживается другими диалектами '''Pascal''' и остальными языками.}}{{Внимание|В настоящее время '''рекомендуется''' использовать технологию [https://www.wpf-tutorial.com/ '''WPF'''] для создания оконных приложений под '''Windows'''. Кроссплатформенным аналогом является [https://avaloniaui.net/ '''Avalonia UI''']. Однако, данные технологии '''не поддерживаются''' в полной мере (например, для '''WPF''' отсутствует дизайнер форм и возможность писать на '''XAML''' из IDE) в '''PascalABC.NET'''. Для их использования рекомендуется применять такие среды разработки, как [https://visualstudio.microsoft.com/downloads/ '''Visual Studio'''] и [https://www.jetbrains.com/rider/download/ '''Rider'''].}}
ButtonABC - класс кнопки.
 
* Декларировать в секции var кнопку можно так:
=Основные классы=
<syntaxhighlight lang="Pascal">Button: ButtonABC;</syntaxhighlight>
ABCButtons содержит следующие классы:
* Инициализировать с помощью new кнопку можно следующим образом:
# '''ButtonABC''' (кнопка) [[https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.button?view=netcore-3.1 аналог в Windows Forms]]
<syntaxhighlight lang="pascal">Button := new ButtonABC(x, y, w, h, t, c);</syntaxhighlight>
 
x, y - координаты левого верхнего угла кнопки; w, h - ширина и высота кнопки соответственно; t - текст на кнопке; c - цвет кнопки.
=Класс ButtonABC=
Button (наследуется от UIElementABC) - класс кнопки. Для ее создания пишите:
<syntaxhighlight lang="Pascalpascal">new Button:({x}, {y}, {width}, {height}, {text}, ButtonABC{color});</syntaxhighlight>
, заменив:
* '''{x}''' и '''{y}''' на x, y кнопки
* '''{width}''' и '''{height}''' на её ширинку и высоту
|* Text'''{text}''' ||на Тексттекст на кнопке.
* '''{color}''' на её цвет.
{| class="wikitable sortable"
|-
! СвойствоСобытие !! Значение
|-
| '''OnClick''' || Хранит ссылку на процедуру, которая выполняется при нажатии на кнопку. Для установки его значения используйте :=.
| Text || Текст на кнопке.
|-
| Filled || Заполнена ли цветом кнопка (true, false).
|-
| Color || Цвет внутренности кнопки.
|-
| FontColor || Цвет текста кнопки.
|-
| Visible || Видимость кнопки (true, false).
|-
| TextVisible || Видимость текста на кнопке (true, false).
|}
 
=Примеры=
=Курсор=
Параметры x и y в обработчиках OnMouseDown, OnMouseUp и OnMouseMove определяют координаты курсора мыши в момент наступления события.
 
=Привязка обработчиков событий=
Чтобы выполнялась некоторая процедура при нажатии на кнопку пишите:
<syntaxhighlight lang="pascal">
uses Crt, GraphABC, ABCButtons;
A.OnClick := p;
uses GraphABC;
//Альтернативный вариант:
A.OnClick += p;
//Изъятие процедуры:
A.OnClick -= p;
</syntaxhighlight>
A - имя кнопки, p - процедура, которая выполниться по нажатию на кнопку a.
 
=Пример=
Вывод "Привет мир!" по щелчку на кнопку.
<syntaxhighlight lang="pascal">
uses Crt, GraphABC, ABCButtons;
var
B: ButtonABC;
 
procedure P() := Writeln('Привет мир!');
 
begin
Bvar b := new ButtonABC(0, 0, 100200, 4050, 'ButtonClick Me', clRed);
Bb.OnClick := P;procedure ->
begin
end.</syntaxhighlight>
b.Color := clRandom();
 
b.FontColor := RGB(255 - b.Color.R, 255 - b.Color.G, 255 - b.Color.B);
=Ссылки=
end;
[[Книга программиста/Графика в PascalABC.Net#Простой таймер|Создание таймера с помощью ABCButtons]]
end.
</syntaxhighlight>