Введение в ABCButtons: различия между версиями
Содержимое удалено Содержимое добавлено
Метка: редактор вики-текста 2017 |
Нет описания правки Метка: редактор вики-текста 2017 |
||
Строка 1: | Строка 1: | ||
'''ABCButtons '''- модуль для создания кнопок на '''PascalABC.NET'''. Основан на '''ABCObjects'''. |
'''ABCButtons '''- модуль для создания кнопок на '''PascalABC.NET'''. Основан на '''ABCObjects'''. |
||
Обратите внимание на то, что: |
|||
⚫ | |||
* Данный модуль является специфическим для '''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'''].}} |
||
Версия от 01:42, 19 июля 2020
ABCButtons - модуль для создания кнопок на PascalABC.NET. Основан на ABCObjects.
Обратите внимание на то, что:
- Данный модуль является специфическим для PascalABC.NET и не поддерживается другими диалектами Pascal и остальными языками.
Внимание! В настоящее время рекомендуется использовать технологию WPF для создания оконных приложений под Windows. Кроссплатформенным аналогом является Avalonia UI. Однако, данные технологии не поддерживаются в полной мере (например, для WPF отсутствует дизайнер форм и возможность писать на XAML из IDE) в PascalABC.NET. Для их использования рекомендуется применять такие среды разработки, как Visual Studio и Rider. |
Основные классы
ABCButtons содержит следующие классы:
- 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.