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

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Нет описания правки
Метка: редактор вики-текста 2017
MAUI notes
Строка 4: Строка 4:
* Данный модуль является специфическим для '''PascalABC.NET''' и не поддерживается другими диалектами '''Pascal''' и остальными языками.
* Данный модуль является специфическим для '''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'''].}}
{{Внимание|В настоящее время '''рекомендуется''' использовать технологию [https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui '''MAUI'''] для создания кроссплатформенных оконных приложений. Однако, данная технология '''не поддерживается''' в '''PascalABC.NET'''. Для ее использования рекомендуется применять такие среды разработки, как [https://visualstudio.microsoft.com/downloads/ '''Visual Studio'''] и [https://www.jetbrains.com/rider/download/ '''Rider'''].}}





Версия от 15:51, 12 октября 2021

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

Обратите внимание на то, что:

  • Данный модуль является специфическим для PascalABC.NET и не поддерживается другими диалектами Pascal и остальными языками.



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

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

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

ButtonABC

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

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

, где:

  • {x}, {y} - x, y кнопки
  • {width}, {height} - ширина, высота кнопки
  • {text} - текст на кнопке
  • {color} - цвет кнопки

, причём {height} - необязательно указывать.

Поле Значение
OnClick Ссылка на процедуру, которая выполняется при нажатии на кнопку. Для установки его значения используйте :=.

Примеры

Смена цвета кнопки

uses ABCButtons, GraphABC;

begin
  Window().Caption := 'Button color changing';
  
  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.

Перемещение фигуры кнопками

uses GraphABC, ABCObjects, ABCButtons;

const
  ButtonSize = 25;
  BoxSize = 100;
  MoveValue = 5;

begin
  Window().Caption := 'Figure translating';
  
  var left := new ButtonABC(0, 0, ButtonSize, ButtonSize, 'L', clRed);
  var right := new ButtonABC(ButtonSize, 0, ButtonSize, ButtonSize, 'R', clYellow);
  var up := new ButtonABC(ButtonSize * 2, 0, ButtonSize, ButtonSize, 'U', clGreen);
  var down := new ButtonABC(ButtonSize * 3, 0, ButtonSize, ButtonSize, 'D', clBlue);
  
  var rectangle := new RectangleABC(Window().Width div 2 - BoxSize div 2, Window().Height div 2 - BoxSize div 2,
                                    BoxSize, BoxSize, clGray);
  
  left.OnClick := procedure() -> rectangle.MoveOn(-MoveValue, 0);
  right.OnClick := procedure() -> rectangle.MoveOn(MoveValue, 0);
  up.OnClick := procedure() -> rectangle.MoveOn(0, -MoveValue);
  down.OnClick := procedure() -> rectangle.MoveOn(0, MoveValue);
end.