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

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
м style editing
Метка: редактор вики-текста 2017
Метка: редактор вики-текста 2017
Строка 9: Строка 9:


=ButtonABC=
=ButtonABC=
'''Button '''(наследуется от '''UIElementABC''') - класс кнопки. Для ее создания пишите:
'''ButtonABC '''(наследуется от '''UIElementABC''') - класс кнопки. Для ее создания пишите:
<syntaxhighlight lang="pascal">new Button({x}, {y}, {width}, {height}, {text}, {color});</syntaxhighlight>
<syntaxhighlight lang="pascal">new ButtonABC({x}, {y}, {width}, {height}, {text}, {color});</syntaxhighlight>
, заменив:
, заменив:
* '''{x}''' и '''{y}''' на x, y кнопки
* '''{x}''' и '''{y}''' на x, y кнопки

Версия от 11:06, 17 июля 2020

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



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

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

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

ButtonABC

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

new ButtonABC({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.

Простой таймер

uses Timers, GraphABC, ABCObjects, ABCButtons;
const
  H = 30;

var
  Start, Stop: ButtonABC;
  Value: RectangleABC;
  T: integer;
  Timer1: Timer;

procedure AddTime();
begin
  Inc(T);
  Value.Text := IntToStr(T);
end;

procedure StartTimer() := Timer1.Start();

procedure StopTimer() := Timer1.Stop();

begin
  SetWindowIsFixedSize(true);
  SetWindowSize(300, 100);
  SetWindowCaption('Timer');
  CenterWindow();
  
  var W := Window.Width div 2;
  var Y := Window.Height - H;
  
  Timer1 := new Timer(1000, AddTime);
  
  Start := new ButtonABC(0, Y, W, H, 'Start', clMoneyGreen);
  Start.OnClick := StartTimer;
  Stop := new ButtonABC(W, Y, W, H, 'Stop', clMoneyGreen);
  Stop.OnClick := StopTimer;
  
  Value := new RectangleABC(0, 0, Window.Width, Y, clWhite);
  Value.Text := '0';
end.