Введение в ABCButtons: различия между версиями
Содержимое удалено Содержимое добавлено
Нет описания правки |
Нет описания правки Метка: редактор вики-текста 2017 |
||
Строка 1: | Строка 1: | ||
ABCButtons - модуль для создания кнопок на PascalABC.NET. |
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'''].}} |
|||
ButtonABC - класс кнопки. |
|||
* Декларировать в секции var кнопку можно так: |
|||
=Основные классы= |
|||
⚫ | |||
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 - цвет кнопки. |
|||
⚫ | |||
Button (наследуется от UIElementABC) - класс кнопки. Для ее создания пишите: |
|||
⚫ | |||
, заменив: |
|||
* '''{x}''' и '''{y}''' на x, y кнопки |
|||
* '''{width}''' и '''{height}''' на её ширинку и высоту |
|||
⚫ | |||
* '''{color}''' на её цвет. |
|||
{| class="wikitable sortable" |
{| class="wikitable sortable" |
||
|- |
|- |
||
! |
! Событие !! Значение |
||
|- |
|- |
||
| '''OnClick''' || Хранит ссылку на процедуру, которая выполняется при нажатии на кнопку. Для установки его значения используйте :=. |
|||
⚫ | |||
|- |
|||
| Filled || Заполнена ли цветом кнопка (true, false). |
|||
|- |
|||
| Color || Цвет внутренности кнопки. |
|||
|- |
|||
| FontColor || Цвет текста кнопки. |
|||
|- |
|||
| Visible || Видимость кнопки (true, false). |
|||
|- |
|||
| TextVisible || Видимость текста на кнопке (true, false). |
|||
|} |
|} |
||
=Примеры= |
|||
=Курсор= |
|||
Параметры x и y в обработчиках OnMouseDown, OnMouseUp и OnMouseMove определяют координаты курсора мыши в момент наступления события. |
|||
=Привязка обработчиков событий= |
|||
Чтобы выполнялась некоторая процедура при нажатии на кнопку пишите: |
|||
<syntaxhighlight lang="pascal"> |
<syntaxhighlight lang="pascal"> |
||
⚫ | |||
A.OnClick := p; |
|||
uses GraphABC; |
|||
//Альтернативный вариант: |
|||
A.OnClick += p; |
|||
//Изъятие процедуры: |
|||
A.OnClick -= p; |
|||
⚫ | |||
A - имя кнопки, p - процедура, которая выполниться по нажатию на кнопку a. |
|||
=Пример= |
|||
Вывод "Привет мир!" по щелчку на кнопку. |
|||
<syntaxhighlight lang="pascal"> |
|||
⚫ | |||
var |
|||
B: ButtonABC; |
|||
procedure P() := Writeln('Привет мир!'); |
|||
begin |
begin |
||
var b := new ButtonABC(0, 0, 200, 50, 'Click Me', clRed); |
|||
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. |
|||
⚫ |
Версия от 05:14, 15 июля 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
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.