unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, StdCtrls, Spin, ComCtrls, ExtCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
PageControl1: TPageControl;
SpinEdit1: TSpinEdit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure RandomGenerate(anOwner: TWinControl);
var
AControl: TControl;
begin
case Random(2) of
0: begin // Generate texts
AControl := TLabel.Create(anOwner);
AControl.Parent := anOwner;
AControl.Left := Random(anOwner.Width-10);
AControl.Top := Random(anOwner.Height-10);
AControl.Caption := Random(999999).ToString;
end;
1: begin // Generate shapes
AControl := TShape.Create(anOwner);
AControl.Parent := anOwner;
AControl.Left := Random(anOwner.Width-100);
AControl.Top := Random(anOwner.Height-100);
AControl.Width := Random(200)+10;
AControl.Height := Random(200)+10;
(AControl as TShape).Brush.Color := Random(999999);
(AControl as TShape).Shape := TShapeType(Random(ord(High(TShapeType))));
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
begin
case Button1.Caption = 'Generate' of
True:
begin
for i := 0 to SpinEdit1.Value-1 do
begin
PageControl1.AddTabSheet;
PageControl1.ActivePageIndex := PageControl1.PageCount-1;
PageControl1.ActivePage.Caption := PageControl1.PageCount.ToString;
for j := 0 to Random(20) do
RandomGenerate(PageControl1.ActivePage);
Button1.Caption := 'Clear';
SpinEdit1.Visible := False;
Label1.Visible := False;
end;
end;
False:
begin
while PageControl1.PageCount > 0 do
PageControl1.ActivePage.Free;
Button1.Caption := 'Generate';
SpinEdit1.Visible := True;
Label1.Visible := True;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
PageControl1.Anchors := [akTop, akBottom, akLeft, akRight];
end;
end.