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

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Метка: редактор вики-текста 2017
Строка 1: Строка 1:
ABCButtons - модуль для создания кнопок на PascalABC.NET.
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="pascal">new Button({x}, {y}, {width}, {height}, {text}, {color});</syntaxhighlight>
, заменив:
* '''{x}''' и '''{y}''' на x, y кнопки
* '''{width}''' и '''{height}''' на её ширинку и высоту
* '''{text}''' на текст на кнопке
* '''{color}''' на её цвет.
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
! Свойство !! Значение
! Событие !! Значение
|-
|-
| '''OnClick''' || Хранит ссылку на процедуру, которая выполняется при нажатии на кнопку. Для установки его значения используйте :=.
| Text || Текст на кнопке.
|-
| Filled || Заполнена ли цветом кнопка (true, false).
|-
| Color || Цвет внутренности кнопки.
|-
| FontColor || Цвет текста кнопки.
|-
| Visible || Видимость кнопки (true, false).
|-
| TextVisible || Видимость текста на кнопке (true, false).
|}
|}


=Примеры=
=Курсор=
Параметры x и y в обработчиках OnMouseDown, OnMouseUp и OnMouseMove определяют координаты курсора мыши в момент наступления события.

=Привязка обработчиков событий=
Чтобы выполнялась некоторая процедура при нажатии на кнопку пишите:
<syntaxhighlight lang="pascal">
<syntaxhighlight lang="pascal">
uses 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
begin
B := new ButtonABC(0, 0, 100, 40, 'Button', clRed);
var b := new ButtonABC(0, 0, 200, 50, 'Click Me', clRed);
B.OnClick := P;
b.OnClick := 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>

Версия от 05:14, 15 июля 2020

ABCButtons - модуль для создания кнопок на PascalABC.NET. Основан на ABCObjects.


Основные классы

ABCButtons содержит следующие классы:

  1. ButtonABC (кнопка) [аналог в Windows Forms]

ButtonABC

Button (наследуется от UIElementABC) - класс кнопки. Для ее создания пишите:

new Button({x}, {y}, {width}, {height}, {text}, {color});

, заменив:

  • {x} и {y} на x, y кнопки
  • {width} и {height} на её ширинку и высоту
  • {text} на текст на кнопке
  • {color} на её цвет.
Событие Значение
OnClick Хранит ссылку на процедуру, которая выполняется при нажатии на кнопку. Для установки его значения используйте :=.

Примеры

uses ABCButtons;
uses GraphABC;

begin
  var b := new ButtonABC(0, 0, 200, 50, 'Click Me', clRed);
  b.OnClick := procedure ->
  begin
    b.Color := clRandom();
    b.FontColor := RGB(255 - b.Color.R, 255 - b.Color.G, 255 - b.Color.B);
  end;
end.