2015-06-27 19:33:50 +03:00
|
|
|
|
// Copyright (c) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt)
|
|
|
|
|
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
2015-05-14 22:35:07 +03:00
|
|
|
|
unit FormsABC;
|
|
|
|
|
|
|
|
|
|
|
|
{$apptype windows}
|
|
|
|
|
|
{$reference 'System.Windows.Forms.dll'}
|
|
|
|
|
|
{$reference 'System.Drawing.dll'}
|
|
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
|
|
|
|
uses
|
|
|
|
|
|
System,
|
|
|
|
|
|
System.Windows.Forms,
|
|
|
|
|
|
System.Drawing,
|
|
|
|
|
|
System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
DockStyle = System.Windows.Forms.DockStyle;
|
|
|
|
|
|
DialogResult = System.Windows.Forms.DialogResult;
|
|
|
|
|
|
BorderStyle = System.Windows.Forms.BorderStyle;
|
|
|
|
|
|
FlowDirection = System.Windows.Forms.FlowDirection;
|
|
|
|
|
|
Color = System.Drawing.Color;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
Field = class
|
|
|
|
|
|
private
|
|
|
|
|
|
l: &Label;
|
|
|
|
|
|
f: System.Windows.Forms.TextBox;
|
|
|
|
|
|
p: Panel;
|
|
|
|
|
|
function GetRealValue: real;
|
|
|
|
|
|
procedure SetRealValue(x: real);
|
|
|
|
|
|
function GetFieldWidth: integer;
|
|
|
|
|
|
procedure SetFieldWidth(x: integer);
|
|
|
|
|
|
function GetText: string;
|
|
|
|
|
|
procedure SetText(s: string); virtual;
|
|
|
|
|
|
procedure TBTextChanged(sender: Object; e: EventArgs);
|
|
|
|
|
|
public
|
|
|
|
|
|
event TextChanged: procedure;
|
|
|
|
|
|
constructor Create(name: string; w: integer := 0);
|
|
|
|
|
|
property Text: string read GetText write SetText;
|
|
|
|
|
|
property FieldWidth: integer read GetFieldWidth write SetFieldWidth;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
IntegerField = class(Field)
|
|
|
|
|
|
private
|
|
|
|
|
|
nonNumberEntered: boolean;
|
|
|
|
|
|
function GetValue: integer;
|
|
|
|
|
|
procedure SetValue(x: integer);
|
|
|
|
|
|
procedure fKeyPressed(sender: Object; e: KeyPressEventArgs);
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor Create(name: string; w: integer := 0);
|
|
|
|
|
|
property Value: integer read GetValue write SetValue;
|
|
|
|
|
|
property Text: string read GetText;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RealField = class(Field)
|
|
|
|
|
|
private
|
|
|
|
|
|
nonNumberEntered: boolean;
|
|
|
|
|
|
function GetValue: real;
|
|
|
|
|
|
procedure SetValue(x: real);
|
|
|
|
|
|
procedure fKeyPressed(sender: Object; e: KeyPressEventArgs);
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor Create(name: string; w: integer := 0);
|
|
|
|
|
|
property Value: real read GetValue write SetValue;
|
|
|
|
|
|
property Text: string read GetText;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
Button = class
|
|
|
|
|
|
private
|
|
|
|
|
|
b := new System.Windows.Forms.Button;
|
|
|
|
|
|
procedure BClick(sender: Object; e: EventArgs);
|
|
|
|
|
|
public
|
|
|
|
|
|
event Click: procedure;
|
|
|
|
|
|
constructor Create(text: string);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
TextLabel = class
|
|
|
|
|
|
private
|
|
|
|
|
|
l := new System.Windows.Forms.Label;
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor(text: string);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CheckBox = class
|
|
|
|
|
|
private
|
|
|
|
|
|
cb := new System.Windows.Forms.CheckBox;
|
|
|
|
|
|
function GetValue: boolean;
|
|
|
|
|
|
procedure SetValue(x: boolean);
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor(text: string);
|
|
|
|
|
|
property Checked: boolean read GetValue write SetValue;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RadioButton = class
|
|
|
|
|
|
private
|
|
|
|
|
|
rb := new System.Windows.Forms.RadioButton;
|
|
|
|
|
|
function GetValue: boolean;
|
|
|
|
|
|
procedure SetValue(x: boolean);
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor(text: string);
|
|
|
|
|
|
property Checked: boolean read GetValue write SetValue;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
ListBox = class
|
|
|
|
|
|
private
|
|
|
|
|
|
lb := new System.Windows.Forms.ListBox;
|
|
|
|
|
|
function GetItems: System.Windows.Forms.ListBox.ObjectCollection;
|
|
|
|
|
|
function GetSelectedIndex: integer;
|
|
|
|
|
|
procedure SetSelectedIndex(i: integer);
|
|
|
|
|
|
function GetSelectedItem: object;
|
|
|
|
|
|
procedure SetSelectedItem(o: object);
|
|
|
|
|
|
function GetCount: integer;
|
|
|
|
|
|
procedure LBClick(sender: Object; e: EventArgs);
|
|
|
|
|
|
procedure LBSelectedIndexChanged(sender: Object; e: EventArgs);
|
|
|
|
|
|
public
|
|
|
|
|
|
event Click: procedure;
|
|
|
|
|
|
event SelectedIndexChanged: procedure;
|
|
|
|
|
|
constructor;
|
|
|
|
|
|
property Items: System.Windows.Forms.ListBox.ObjectCollection read GetItems;
|
|
|
|
|
|
property SelectedIndex: integer read GetSelectedIndex write SetSelectedIndex;
|
|
|
|
|
|
property SelectedItem: object read GetSelectedItem write SetSelectedItem;
|
|
|
|
|
|
property Count: integer read GetCount;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
ComboBox = class
|
|
|
|
|
|
private
|
|
|
|
|
|
cb := new System.Windows.Forms.ComboBox;
|
|
|
|
|
|
function GetItems: System.Windows.Forms.ComboBox.ObjectCollection;
|
|
|
|
|
|
function GetSelectedIndex: integer;
|
|
|
|
|
|
procedure SetSelectedIndex(i: integer);
|
|
|
|
|
|
function GetSelectedItem: object;
|
|
|
|
|
|
procedure SetSelectedItem(o: object);
|
|
|
|
|
|
function GetCount: integer;
|
|
|
|
|
|
procedure CBClick(sender: Object; e: EventArgs);
|
|
|
|
|
|
procedure CBSelectedIndexChanged(sender: Object; e: EventArgs);
|
|
|
|
|
|
function GetWidth: integer;
|
|
|
|
|
|
procedure SetWidth(x: integer);
|
|
|
|
|
|
public
|
|
|
|
|
|
event Click: procedure;
|
|
|
|
|
|
event SelectedIndexChanged: procedure;
|
|
|
|
|
|
constructor;
|
|
|
|
|
|
property Items: System.Windows.Forms.ComboBox.ObjectCollection read GetItems;
|
|
|
|
|
|
property SelectedIndex: integer read GetSelectedIndex write SetSelectedIndex;
|
|
|
|
|
|
property SelectedValue: object read GetSelectedItem write SetSelectedItem;
|
|
|
|
|
|
property Count: integer read GetCount;
|
|
|
|
|
|
property Width: integer read GetWidth write SetWidth;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
TrackBar = class
|
|
|
|
|
|
private
|
|
|
|
|
|
tb: System.Windows.Forms.TrackBar;
|
|
|
|
|
|
function GetMinimum: integer;
|
|
|
|
|
|
procedure SetMinimum(v: integer);
|
|
|
|
|
|
function GetMaximum: integer;
|
|
|
|
|
|
procedure SetMaximum(v: integer);
|
|
|
|
|
|
function GetValue: integer;
|
|
|
|
|
|
procedure SetValue(v: integer);
|
|
|
|
|
|
function GetFrequency: integer;
|
|
|
|
|
|
procedure SetFrequency(v: integer);
|
|
|
|
|
|
procedure TBValueChanged(sender: Object; e: EventArgs);
|
|
|
|
|
|
public
|
|
|
|
|
|
event ValueChanged: procedure;
|
|
|
|
|
|
constructor Create;
|
|
|
|
|
|
property Minimum: integer read GetMinimum write SetMinimum;
|
|
|
|
|
|
property Maximum: integer read GetMaximum write SetMaximum;
|
|
|
|
|
|
property Value: integer read GetValue write SetValue;
|
|
|
|
|
|
property Frequency: integer read GetFrequency write SetFrequency;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
IntegerUpDown = class
|
|
|
|
|
|
private
|
|
|
|
|
|
n: System.Windows.Forms.NumericUpDown;
|
|
|
|
|
|
function GetMinimum: integer;
|
|
|
|
|
|
procedure SetMinimum(v: integer);
|
|
|
|
|
|
function GetMaximum: integer;
|
|
|
|
|
|
procedure SetMaximum(v: integer);
|
|
|
|
|
|
function GetValue: integer;
|
|
|
|
|
|
procedure SetValue(v: integer);
|
|
|
|
|
|
function GetWidth: integer;
|
|
|
|
|
|
procedure SetWidth(v: integer);
|
|
|
|
|
|
procedure NValueChanged(sender: Object; e: EventArgs);
|
|
|
|
|
|
public
|
|
|
|
|
|
event ValueChanged: procedure;
|
|
|
|
|
|
constructor Create;
|
|
|
|
|
|
property Minimum: integer read GetMinimum write SetMinimum;
|
|
|
|
|
|
property Maximum: integer read GetMaximum write SetMaximum;
|
|
|
|
|
|
property Value: integer read GetValue write SetValue;
|
|
|
|
|
|
property Width: integer read GetWidth write SetWidth;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
BaseDockControl = class
|
|
|
|
|
|
private
|
|
|
|
|
|
f: System.Windows.Forms.Control;
|
|
|
|
|
|
function GetWidth: integer;
|
|
|
|
|
|
procedure SetWidth(x: integer);
|
|
|
|
|
|
function GetHeight: integer;
|
|
|
|
|
|
procedure SetHeight(x: integer);
|
|
|
|
|
|
function GetDock: DockStyle;
|
|
|
|
|
|
procedure SetDock(d: DockStyle);
|
|
|
|
|
|
public
|
|
|
|
|
|
property Width: integer read GetWidth write SetWidth;
|
|
|
|
|
|
property Height: integer read GetHeight write SetHeight;
|
|
|
|
|
|
property Dock: DockStyle read GetDock write SetDock;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
TextBox = class(BaseDockControl)
|
|
|
|
|
|
private
|
|
|
|
|
|
function GetText: string;
|
|
|
|
|
|
procedure SetText(s: string);
|
|
|
|
|
|
function GetLines: array of string;
|
|
|
|
|
|
procedure SetLines(s: array of string);
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor Create();
|
|
|
|
|
|
property Text: string read GetText write SetText;
|
|
|
|
|
|
property Lines: array of string read GetLines write SetLines;
|
|
|
|
|
|
procedure SaveFile(fname: string);
|
|
|
|
|
|
procedure LoadFile(fname: string);
|
|
|
|
|
|
procedure AddLine(txt: string);
|
|
|
|
|
|
procedure Undo;
|
|
|
|
|
|
procedure Redo;
|
|
|
|
|
|
procedure Cut;
|
|
|
|
|
|
procedure Copy;
|
|
|
|
|
|
procedure Paste;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
WebBrowser = class(BaseDockControl)
|
|
|
|
|
|
private
|
|
|
|
|
|
function GetText: string;
|
|
|
|
|
|
procedure SetText(s: string);
|
|
|
|
|
|
function GetAddress: string;
|
|
|
|
|
|
procedure WBDocumentCompleted(sender: Object; e: WebBrowserDocumentCompletedEventArgs);
|
|
|
|
|
|
public
|
|
|
|
|
|
event DocumentCompleted: procedure;
|
|
|
|
|
|
constructor Create();
|
|
|
|
|
|
property DocumentText: string read GetText write SetText;
|
|
|
|
|
|
procedure Navigate(address: string);
|
|
|
|
|
|
procedure GoBack;
|
|
|
|
|
|
procedure GoForward;
|
|
|
|
|
|
procedure GoHome;
|
|
|
|
|
|
property Address: string read GetAddress;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
PaintBox = class(BaseDockControl)
|
|
|
|
|
|
private
|
|
|
|
|
|
procedure PResize(sender: Object; e: EventArgs);
|
|
|
|
|
|
procedure PPaint(sender: Object; e: PaintEventArgs);
|
|
|
|
|
|
procedure PMouseDown(sender: Object; e: MouseEventArgs);
|
|
|
|
|
|
procedure PMouseUp(sender: Object; e: MouseEventArgs);
|
|
|
|
|
|
procedure PMouseMove(sender: Object; e: MouseEventArgs);
|
|
|
|
|
|
public
|
|
|
|
|
|
event Resize: procedure;
|
|
|
|
|
|
event Paint: procedure (e: PaintEventArgs);
|
|
|
|
|
|
event MouseDown: procedure (e: MouseEventArgs);
|
|
|
|
|
|
event MouseUp: procedure (e: MouseEventArgs);
|
|
|
|
|
|
event MouseMove: procedure (e: MouseEventArgs);
|
|
|
|
|
|
constructor Create();
|
|
|
|
|
|
function Graphics: System.Drawing.Graphics;
|
|
|
|
|
|
procedure Invalidate;
|
|
|
|
|
|
//function pb: PictureBox;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
MenuItem = class;
|
|
|
|
|
|
ItemProc = procedure(item: MenuItem);
|
|
|
|
|
|
MenuItem = class
|
|
|
|
|
|
private
|
|
|
|
|
|
mi: ToolStripMenuItem;
|
|
|
|
|
|
items: List<MenuItem>;
|
|
|
|
|
|
procedure MIClick(sender: Object; e: EventArgs);
|
|
|
|
|
|
procedure SetText(text: string);
|
|
|
|
|
|
function GetText: string;
|
|
|
|
|
|
function GetItem(i: integer): MenuItem;
|
|
|
|
|
|
public
|
|
|
|
|
|
event Click: ItemProc;
|
|
|
|
|
|
constructor Create(mi: ToolStripMenuItem);
|
|
|
|
|
|
procedure Add(name: string; handler: ItemProc);
|
|
|
|
|
|
procedure Add(name1,name2: string; handler: ItemProc);
|
|
|
|
|
|
procedure Add(name1,name2,name3: string; handler: ItemProc);
|
|
|
|
|
|
property Text: string read GetText write SetText;
|
|
|
|
|
|
property Item[i: integer]: MenuItem read GetItem; default;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
MainMenu = class
|
|
|
|
|
|
private
|
|
|
|
|
|
m: MenuStrip;
|
|
|
|
|
|
items: List<MenuItem>;
|
|
|
|
|
|
function GetItem(i: integer): MenuItem;
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor Create;
|
|
|
|
|
|
procedure Add(params names: array of string);
|
|
|
|
|
|
property Item[i: integer]: MenuItem read GetItem; default;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
ContainerControl = class
|
|
|
|
|
|
private
|
|
|
|
|
|
NetControl: Control;
|
|
|
|
|
|
procedure Add(c: Control);
|
|
|
|
|
|
begin
|
|
|
|
|
|
NetControl.Controls.Add(c);
|
|
|
|
|
|
end;
|
|
|
|
|
|
public
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
MainFormType = class(ContainerControl)
|
|
|
|
|
|
private
|
|
|
|
|
|
m: Form;
|
|
|
|
|
|
procedure SetLeft(l: integer);
|
|
|
|
|
|
function GetLeft: integer;
|
|
|
|
|
|
procedure SetTop(t: integer);
|
|
|
|
|
|
function GetTop: integer;
|
|
|
|
|
|
procedure SetWidth(w: integer);
|
|
|
|
|
|
function GetWidth: integer;
|
|
|
|
|
|
procedure SetHeight(h: integer);
|
|
|
|
|
|
function GetHeight: integer;
|
|
|
|
|
|
procedure SetTitle(t: string);
|
|
|
|
|
|
function GetTitle: string;
|
|
|
|
|
|
procedure SetIsFixedSize(b: boolean);
|
|
|
|
|
|
function GetIsFixedSize: boolean;
|
|
|
|
|
|
procedure MResize(sender: object; e: EventArgs);
|
|
|
|
|
|
constructor Create;
|
|
|
|
|
|
public
|
|
|
|
|
|
event Resize: procedure;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
property Left: integer read GetLeft write SetLeft;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
property Top: integer read GetTop write SetTop;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
property Width: integer read GetWidth write SetWidth;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
property Height: integer read GetHeight write SetHeight;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
property Title: string read GetTitle write SetTitle;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
property IsFixedSize: boolean read GetIsFixedSize write SetIsFixedSize;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
procedure SetSize(w, h: integer);
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
procedure SetPos(l, t: integer);
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
procedure Close;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
procedure Minimize;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
procedure Maximize;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
procedure Normalize;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
procedure CenterOnScreen;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .NET-<2D><><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
function NetForm: Form;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
Panel = class(ContainerControl)
|
|
|
|
|
|
private
|
|
|
|
|
|
p: System.Windows.Forms.Panel;
|
|
|
|
|
|
function GetDock: DockStyle;
|
|
|
|
|
|
procedure SetDock(d: DockStyle);
|
|
|
|
|
|
procedure SetWidth(w: integer);
|
|
|
|
|
|
function GetWidth: integer;
|
|
|
|
|
|
procedure SetHeight(h: integer);
|
|
|
|
|
|
function GetHeight: integer;
|
|
|
|
|
|
function GetBorderStyle: BorderStyle;
|
|
|
|
|
|
procedure SetBorderStyle(bs: BorderStyle);
|
|
|
|
|
|
function GetColor: FormsABC.Color;
|
|
|
|
|
|
procedure SetColor(c: FormsABC.Color);
|
|
|
|
|
|
constructor Create(f: System.Windows.Forms.Panel);
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor Create;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
property Width: integer read GetWidth write SetWidth;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
property Height: integer read GetHeight write SetHeight;
|
|
|
|
|
|
property Dock: DockStyle read GetDock write SetDock;
|
|
|
|
|
|
property Border: BorderStyle read GetBorderStyle write SetBorderStyle;
|
|
|
|
|
|
property Color: FormsABC.Color read GetColor write SetColor;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
FlowPanel = class(Panel)
|
|
|
|
|
|
private
|
|
|
|
|
|
function GetFlowDirection: FlowDirection;
|
|
|
|
|
|
procedure SetFlowDirection(fd: FlowDirection);
|
|
|
|
|
|
constructor Create(f: FlowLayoutPanel);
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor Create;
|
|
|
|
|
|
property Direction: FlowDirection read GetFlowDirection write SetFlowDirection;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
CommonDialog = class
|
|
|
|
|
|
private
|
|
|
|
|
|
d: System.Windows.Forms.CommonDialog;
|
|
|
|
|
|
public
|
|
|
|
|
|
function ShowDialog: DialogResult;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
FileDialog = class(CommonDialog)
|
|
|
|
|
|
private
|
|
|
|
|
|
procedure SetFilter(f: string);
|
|
|
|
|
|
function GetFilter: string;
|
|
|
|
|
|
procedure SetInitialDirectory(f: string);
|
|
|
|
|
|
function GetInitialDirectory: string;
|
|
|
|
|
|
procedure SetFileName(f: string);
|
|
|
|
|
|
function GetFileName: string;
|
|
|
|
|
|
public
|
|
|
|
|
|
property Filter: string read GetFilter write SetFilter;
|
|
|
|
|
|
property FileName: string read GetFileName write SetFileName;
|
|
|
|
|
|
property InitialDirectory: string read GetInitialDirectory write SetInitialDirectory;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
OpenFileDialog = class(FileDialog)
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor Create;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SaveFileDialog = class(FileDialog)
|
|
|
|
|
|
public
|
|
|
|
|
|
constructor Create;
|
|
|
|
|
|
end;
|
|
|
|
|
|
//------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---------------
|
|
|
|
|
|
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
procedure LineBreak;
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
procedure EmptyLine(h: integer := 20);
|
|
|
|
|
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
procedure EmptySpace(w: integer := 20);
|
|
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
FlowBreak = class
|
|
|
|
|
|
constructor(h: integer := 0);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if h=0 then
|
|
|
|
|
|
LineBreak
|
|
|
|
|
|
else EmptyLine(h)
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
Space = class
|
|
|
|
|
|
constructor(w: integer := 20);
|
|
|
|
|
|
begin
|
|
|
|
|
|
EmptySpace(w)
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---------------
|
|
|
|
|
|
|
|
|
|
|
|
var
|
|
|
|
|
|
MainForm: MainFormType;
|
|
|
|
|
|
MainPanel: FlowPanel;
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 20.11.10
|
|
|
|
|
|
ParentControl: ContainerControl;
|
|
|
|
|
|
|
|
|
|
|
|
///--
|
|
|
|
|
|
procedure __InitModule__;
|
|
|
|
|
|
///--
|
|
|
|
|
|
procedure __FinalizeModule__;
|
|
|
|
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
|
|
|
|
var
|
|
|
|
|
|
_MainForm : Form;
|
|
|
|
|
|
_MainPanel : FlowLayoutPanel;
|
|
|
|
|
|
_MainMenu: MenuStrip := nil;
|
|
|
|
|
|
CurrentControl: Control := nil;
|
|
|
|
|
|
nfi: System.Globalization.NumberFormatInfo;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---------------
|
|
|
|
|
|
|
|
|
|
|
|
//------------- Field ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function Field.GetRealValue: real;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := real.Parse(f.Text,nfi);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure Field.SetRealValue(x: real);
|
|
|
|
|
|
begin
|
|
|
|
|
|
f.Text := x.ToString
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function Field.GetFieldWidth: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := f.Width;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure Field.SetFieldWidth(x: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
f.Width := x
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function Field.GetText: string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := f.Text;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure Field.SetText(s: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
f.Text := s;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure Field.TBTextChanged(sender: Object; e: EventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if TextChanged <> nil then
|
|
|
|
|
|
TextChanged;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor Field.Create(name: string; w: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
f := new System.Windows.Forms.TextBox;
|
|
|
|
|
|
p := new System.Windows.Forms.Panel;
|
|
|
|
|
|
l := new &Label;
|
|
|
|
|
|
l.AutoSize := True;
|
|
|
|
|
|
l.Text := name;
|
|
|
|
|
|
l.Size := new Size(l.PreferredWidth, l.PreferredHeight);
|
|
|
|
|
|
f.Top := l.Top + l.Height;
|
|
|
|
|
|
p.Controls.Add(l);
|
|
|
|
|
|
p.Controls.Add(f);
|
|
|
|
|
|
p.AutoSize := True;
|
|
|
|
|
|
p.AutoSizeMode := AutoSizeMode.GrowAndShrink;
|
|
|
|
|
|
ParentControl.Add(p);
|
|
|
|
|
|
CurrentControl := p;
|
|
|
|
|
|
if w <> 0 then
|
|
|
|
|
|
FieldWidth := w;
|
|
|
|
|
|
f.TextChanged += TBTextChanged;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- IntegerField ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function IntegerField.GetValue: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Trim(f.Text) = '' then
|
|
|
|
|
|
Result := 0
|
|
|
|
|
|
else Result := integer.Parse(f.Text);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure IntegerField.SetValue(x: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
f.Text := x.ToString
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure IntegerField.fKeyPressed(sender: Object; e: KeyPressEventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if (e.KeyChar = #8) or (e.KeyChar = '-') then
|
|
|
|
|
|
exit;
|
|
|
|
|
|
if not Char.IsDigit(e.KeyChar) then
|
|
|
|
|
|
e.Handled := True;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor IntegerField.Create(name: string; w: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited Create(name, w);
|
|
|
|
|
|
Value := 0;
|
|
|
|
|
|
f.KeyPress += fKeyPressed;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- RealField ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function RealField.GetValue: real;
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Trim(f.Text) = '' then
|
|
|
|
|
|
Result := 0
|
|
|
|
|
|
else Result := real.Parse(f.Text,nfi);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure RealField.SetValue(x: real);
|
|
|
|
|
|
begin
|
|
|
|
|
|
f.Text := x.ToString(nfi);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure RealField.fKeyPressed(sender: Object; e: KeyPressEventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if (e.KeyChar = #8) or (e.KeyChar = '-') then
|
|
|
|
|
|
exit;
|
|
|
|
|
|
if not Char.IsDigit(e.KeyChar) then
|
|
|
|
|
|
if (e.KeyChar <> '.') or (f.Text.IndexOf('.') <> -1) then
|
|
|
|
|
|
e.Handled := True;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor RealField.Create(name: string; w: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited Create(name, w);
|
|
|
|
|
|
Value := 0;
|
|
|
|
|
|
f.KeyPress += fKeyPressed;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- Button ---------------
|
|
|
|
|
|
|
|
|
|
|
|
procedure Button.BClick(sender: Object; e: EventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Click <> nil then
|
|
|
|
|
|
Click;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor Button.Create(text: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
b.Text := text;
|
|
|
|
|
|
// b.Dock := DockStyle.Right;
|
|
|
|
|
|
b.AutoSize := True;
|
|
|
|
|
|
ParentControl.Add(b);
|
|
|
|
|
|
CurrentControl := b;
|
|
|
|
|
|
b.Click += BClick;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- TextLabel ---------------
|
|
|
|
|
|
|
|
|
|
|
|
constructor TextLabel.Create(text: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
l.Text := text;
|
|
|
|
|
|
l.AutoSize := True;
|
|
|
|
|
|
l.Size := new Size(l.PreferredWidth, l.PreferredHeight);
|
|
|
|
|
|
_MainPanel.Controls.Add(l);
|
|
|
|
|
|
CurrentControl := l;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- CheckBox ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function CheckBox.GetValue: boolean;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := cb.Checked;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure CheckBox.SetValue(x: boolean);
|
|
|
|
|
|
begin
|
|
|
|
|
|
cb.Checked := x
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor CheckBox.Create(text: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
cb.Text := text;
|
|
|
|
|
|
cb.AutoSize := True;
|
|
|
|
|
|
ParentControl.Add(cb);
|
|
|
|
|
|
CurrentControl := cb;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- RadioButton ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function RadioButton.GetValue: boolean;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := rb.Checked;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure RadioButton.SetValue(x: boolean);
|
|
|
|
|
|
begin
|
|
|
|
|
|
rb.Checked := x
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor RadioButton.Create(text: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
rb.Text := text;
|
|
|
|
|
|
rb.AutoSize := True;
|
|
|
|
|
|
ParentControl.Add(rb);
|
|
|
|
|
|
CurrentControl := rb;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- ListBox ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function ListBox.GetItems: System.Windows.Forms.ListBox.ObjectCollection;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := lb.Items;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function ListBox.GetSelectedIndex: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := lb.SelectedIndex;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure ListBox.SetSelectedIndex(i: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
lb.SelectedIndex := i;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function ListBox.GetSelectedItem: object;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := lb.SelectedItem;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure ListBox.SetSelectedItem(o: object);
|
|
|
|
|
|
begin
|
|
|
|
|
|
lb.SelectedItem := o;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function ListBox.GetCount: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := lb.Items.Count;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure ListBox.LBClick(sender: Object; e: EventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Click <> nil then
|
|
|
|
|
|
Click;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure ListBox.LBSelectedIndexChanged(sender: Object; e: EventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if SelectedIndexChanged <> nil then
|
|
|
|
|
|
SelectedIndexChanged;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor ListBox.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
lb.AutoSize := True;
|
|
|
|
|
|
ParentControl.Add(lb);
|
|
|
|
|
|
CurrentControl := lb;
|
|
|
|
|
|
lb.Click += LBClick;
|
|
|
|
|
|
lb.SelectedIndexChanged += LBSelectedIndexChanged;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- ComboBox ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function ComboBox.GetItems: System.Windows.Forms.ComboBox.ObjectCollection;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := cb.Items;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function ComboBox.GetSelectedIndex: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := cb.SelectedIndex;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure ComboBox.SetSelectedIndex(i: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
cb.SelectedIndex := i;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function ComboBox.GetSelectedItem: object;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := cb.SelectedItem;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure ComboBox.SetSelectedItem(o: object);
|
|
|
|
|
|
begin
|
|
|
|
|
|
cb.SelectedItem := o;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function ComboBox.GetCount: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := cb.Items.Count;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure ComboBox.CBClick(sender: Object; e: EventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Click <> nil then
|
|
|
|
|
|
Click;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure ComboBox.CBSelectedIndexChanged(sender: Object; e: EventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if SelectedIndexChanged <> nil then
|
|
|
|
|
|
SelectedIndexChanged;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function ComboBox.GetWidth: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := cb.Width;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure ComboBox.SetWidth(x: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
cb.Width := x
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor ComboBox.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
cb.AutoSize := True;
|
|
|
|
|
|
ParentControl.Add(cb);
|
|
|
|
|
|
CurrentControl := cb;
|
|
|
|
|
|
cb.Click += CBClick;
|
|
|
|
|
|
cb.SelectedIndexChanged += CBSelectedIndexChanged;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- BaseDockControl ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function BaseDockControl.GetWidth: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := f.Width;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure BaseDockControl.SetWidth(x: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
f.Width := x;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function BaseDockControl.GetHeight: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := f.Height;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure BaseDockControl.SetHeight(x: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
f.Height := x;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function BaseDockControl.GetDock: DockStyle;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := f.Dock
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure BaseDockControl.SetDock(d: DockStyle);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if f.Dock = d then
|
|
|
|
|
|
exit;
|
|
|
|
|
|
f.Dock := d;
|
|
|
|
|
|
|
|
|
|
|
|
{ if d<>DockStyle.Fill then
|
|
|
|
|
|
if not _MainPanel.Visible then
|
|
|
|
|
|
_MainPanel.Visible := True;}
|
|
|
|
|
|
|
|
|
|
|
|
{ case d of
|
|
|
|
|
|
DockStyle.Right: f.Parent := _MainForm;
|
|
|
|
|
|
DockStyle.Left: f.Parent := _MainForm;
|
|
|
|
|
|
DockStyle.Top: f.Parent := _MainForm;
|
|
|
|
|
|
DockStyle.Bottom: f.Parent := _MainForm;
|
|
|
|
|
|
DockStyle.None: f.Parent := _MainPanel;
|
|
|
|
|
|
DockStyle.Fill:
|
|
|
|
|
|
begin
|
|
|
|
|
|
f.Parent := _MainForm;
|
|
|
|
|
|
//_MainPanel.Visible := False;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end; }
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- TextBox ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function TextBox.GetText: string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := f.Text;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TextBox.SetText(s: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
f.Text := s;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TextBox.GetLines: array of string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (f as System.Windows.Forms.TextBox).Lines;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TextBox.SetLines(s: array of string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.TextBox).Lines := s;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TextBox.SaveFile(fname: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
var ff := new System.IO.StreamWriter(fname, false, System.Text.Encoding.Default);
|
|
|
|
|
|
ff.Write(f.Text);
|
|
|
|
|
|
ff.Close;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TextBox.LoadFile(fname: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
var ff := new System.IO.StreamReader(fname, System.Text.Encoding.Default);
|
|
|
|
|
|
Text := ff.ReadToEnd;
|
|
|
|
|
|
ff.Close;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TextBox.AddLine(txt: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.RichTextBox).AppendText(txt + Environment.NewLine);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TextBox.Undo;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.RichTextBox).Undo
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TextBox.Redo;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.RichTextBox).Redo
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TextBox.Cut;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.RichTextBox).Cut
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TextBox.Copy;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.RichTextBox).Copy
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TextBox.Paste;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.RichTextBox).Paste
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor TextBox.Create();
|
|
|
|
|
|
begin
|
|
|
|
|
|
f := new System.Windows.Forms.RichTextBox;
|
|
|
|
|
|
f.Width := 150;
|
|
|
|
|
|
f.Height := 100;
|
|
|
|
|
|
(f as System.Windows.Forms.RichTextBox).Multiline := True;
|
|
|
|
|
|
(f as System.Windows.Forms.RichTextBox).WordWrap := false;
|
|
|
|
|
|
ParentControl.Add(f);
|
|
|
|
|
|
CurrentControl := f;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- PaintBox ---------------
|
|
|
|
|
|
|
|
|
|
|
|
procedure PaintBox.PResize(sender: Object; e: EventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Resize<>nil then
|
|
|
|
|
|
Resize
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure PaintBox.PPaint(sender: Object; e: PaintEventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Paint<>nil then
|
|
|
|
|
|
Paint(e);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure PaintBox.PMouseDown(sender: Object; e: MouseEventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if MouseDown<>nil then
|
|
|
|
|
|
MouseDown(e);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure PaintBox.PMouseUp(sender: Object; e: MouseEventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if MouseUp<>nil then
|
|
|
|
|
|
MouseUp(e);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure PaintBox.PMouseMove(sender: Object; e: MouseEventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if MouseMove<>nil then
|
|
|
|
|
|
MouseMove(e);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function PaintBox.Graphics: System.Drawing.Graphics;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := System.Drawing.Graphics.FromImage((f as PictureBox).Image);
|
|
|
|
|
|
//Result := System.Drawing.Graphics.FromHWND(f.Handle)
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure PaintBox.Invalidate;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as PictureBox).Invalidate;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor PaintBox.Create();
|
|
|
|
|
|
begin
|
|
|
|
|
|
f := new PictureBox;
|
|
|
|
|
|
(f as PictureBox).Image := new Bitmap(1280,1024);
|
|
|
|
|
|
Graphics.Clear(Color.White);
|
|
|
|
|
|
ParentControl.Add(f);
|
|
|
|
|
|
CurrentControl := f;
|
|
|
|
|
|
var p := f as PictureBox;
|
|
|
|
|
|
p.Resize += PResize;
|
|
|
|
|
|
p.Paint += PPaint;
|
|
|
|
|
|
p.MouseDown += PMouseDown;
|
|
|
|
|
|
p.MouseMove += PMouseMove;
|
|
|
|
|
|
p.MouseUp += PMouseUp;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- WebBrowser ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function WebBrowser.GetText: string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (f as System.Windows.Forms.WebBrowser).DocumentText
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure WebBrowser.SetText(s: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.WebBrowser).DocumentText := s;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function WebBrowser.GetAddress: string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (f as System.Windows.Forms.WebBrowser).Url.AbsoluteUri
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure WebBrowser.WBDocumentCompleted(sender: Object; e: WebBrowserDocumentCompletedEventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if DocumentCompleted<>nil then
|
|
|
|
|
|
DocumentCompleted;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor WebBrowser.Create();
|
|
|
|
|
|
begin
|
|
|
|
|
|
f := new System.Windows.Forms.WebBrowser;
|
|
|
|
|
|
ParentControl.Add(f);
|
|
|
|
|
|
CurrentControl := f;
|
|
|
|
|
|
(f as System.Windows.Forms.WebBrowser).DocumentCompleted += WBDocumentCompleted;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure WebBrowser.Navigate(address: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.WebBrowser).Navigate(address);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure WebBrowser.GoBack;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.WebBrowser).GoBack;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure WebBrowser.GoForward;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.WebBrowser).GoForward
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure WebBrowser.GoHome;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(f as System.Windows.Forms.WebBrowser).GoHome
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- MenuItem ---------------
|
|
|
|
|
|
|
|
|
|
|
|
constructor MenuItem.Create(mi: ToolStripMenuItem);
|
|
|
|
|
|
begin
|
|
|
|
|
|
Self.mi := mi;
|
|
|
|
|
|
items := new List<MenuItem>;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MenuItem.Add(name: string; handler: ItemProc);
|
|
|
|
|
|
begin
|
|
|
|
|
|
var nmi := new ToolStripMenuItem(name);
|
|
|
|
|
|
var mmi := new MenuItem(nmi);
|
|
|
|
|
|
mmi.Click += handler;
|
|
|
|
|
|
items.Add(mmi);
|
|
|
|
|
|
nmi.Click += mmi.MIClick;
|
|
|
|
|
|
mi.DropDownItems.Add(nmi);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MenuItem.Add(name1,name2: string; handler: ItemProc);
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add(name1, handler);
|
|
|
|
|
|
Add(name2, handler);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MenuItem.Add(name1,name2,name3: string; handler: ItemProc);
|
|
|
|
|
|
begin
|
|
|
|
|
|
Add(name1, handler);
|
|
|
|
|
|
Add(name2, handler);
|
|
|
|
|
|
Add(name3, handler);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MenuItem.MIClick(sender: Object; e: EventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Click<>nil then
|
|
|
|
|
|
Click(Self);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MenuItem.SetText(text: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
mi.Text := text
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function MenuItem.GetText: string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := mi.Text;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function MenuItem.GetItem(i: integer): MenuItem;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := items[i];
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- MainMenu ---------------
|
|
|
|
|
|
|
|
|
|
|
|
constructor MainMenu.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
m := new MenuStrip;
|
|
|
|
|
|
_MainMenu := m;
|
|
|
|
|
|
_MainForm.MainMenuStrip := m;
|
|
|
|
|
|
//_MainForm.Controls.Add(m);
|
|
|
|
|
|
items := new List<MenuItem>;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainMenu.Add(params names: array of string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
var mi: ToolStripMenuItem;
|
|
|
|
|
|
foreach x: string in names do
|
|
|
|
|
|
begin
|
|
|
|
|
|
mi := new ToolStripMenuItem(x);
|
|
|
|
|
|
m.Items.Add(mi);
|
|
|
|
|
|
items.Add(new MenuItem(mi))
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function MainMenu.GetItem(i: integer): MenuItem;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := items[i];
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- TrackBar ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function TrackBar.GetMinimum: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := tb.Minimum
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TrackBar.SetMinimum(v: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
tb.Minimum := v
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TrackBar.GetMaximum: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := tb.Maximum
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TrackBar.SetMaximum(v: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
tb.Maximum := v
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TrackBar.GetValue: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := tb.Value
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TrackBar.SetValue(v: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
tb.Value := v
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TrackBar.GetFrequency: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := tb.TickFrequency
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TrackBar.SetFrequency(v: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
tb.TickFrequency := v
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TrackBar.TBValueChanged(sender: Object; e: EventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if ValueChanged<>nil then
|
|
|
|
|
|
ValueChanged;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor TrackBar.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
tb := new System.Windows.Forms.TrackBar;
|
|
|
|
|
|
ParentControl.Add(tb);
|
|
|
|
|
|
CurrentControl := tb;
|
|
|
|
|
|
tb.ValueChanged += TBValueChanged;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- NumericUpDown ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function IntegerUpDown.GetMinimum: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := integer(n.Minimum)
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure IntegerUpDown.SetMinimum(v: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
n.Minimum := v
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function IntegerUpDown.GetMaximum: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := integer(n.Maximum)
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure IntegerUpDown.SetMaximum(v: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
n.Maximum := v
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function IntegerUpDown.GetValue: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := integer(n.Value)
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure IntegerUpDown.SetValue(v: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
n.Value := v
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function IntegerUpDown.GetWidth: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := n.Width
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure IntegerUpDown.SetWidth(v: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
n.Width := v
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure IntegerUpDown.NValueChanged(sender: Object; e: EventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if ValueChanged<>nil then
|
|
|
|
|
|
ValueChanged;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor IntegerUpDown.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
n := new System.Windows.Forms.NumericUpDown;
|
|
|
|
|
|
ParentControl.Add(n);
|
|
|
|
|
|
CurrentControl := n;
|
|
|
|
|
|
n.ValueChanged += NValueChanged;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- MainWindowType ---------------
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.MResize(sender: object; e: EventArgs);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if Resize<>nil then
|
|
|
|
|
|
Resize;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor MainFormType.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
m := _MainForm;
|
|
|
|
|
|
NetControl := m;
|
|
|
|
|
|
m.Resize += MResize;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.SetLeft(l: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.Left := l;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function MainFormType.GetLeft: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := _MainForm.Left
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.SetTop(t: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.Top := t;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function MainFormType.GetTop: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := _MainForm.Top
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.SetWidth(w: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.Width := w;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function MainFormType.GetWidth: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := _MainForm.Width
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.SetHeight(h: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.Height := h;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function MainFormType.GetHeight: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := _MainForm.Height
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.SetTitle(t: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.Text := t;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function MainFormType.GetTitle: string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := _MainForm.Text
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.SetIsFixedSize(b: boolean);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if b then
|
|
|
|
|
|
_MainForm.FormBorderStyle := FormBorderStyle.FixedSingle
|
|
|
|
|
|
else _MainForm.FormBorderStyle := FormBorderStyle.Sizable
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function MainFormType.GetIsFixedSize: boolean;
|
|
|
|
|
|
begin
|
|
|
|
|
|
if _MainForm.FormBorderStyle = FormBorderStyle.FixedSingle then
|
|
|
|
|
|
Result := True
|
|
|
|
|
|
else Result := False;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.SetSize(w, h: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.Size := new Size(w, h);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.SetPos(l, t: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.Left := l;
|
|
|
|
|
|
_MainForm.Top := t;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.Close;
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.Close;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.Minimize;
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.WindowState := FormWindowState.Minimized;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.Maximize;
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.WindowState := FormWindowState.Maximized;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.Normalize;
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.WindowState := FormWindowState.Normal;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure MainFormType.CenterOnScreen;
|
|
|
|
|
|
begin
|
|
|
|
|
|
var ScreenWidth := Screen.PrimaryScreen.Bounds.Width;
|
|
|
|
|
|
var ScreenHeight := Screen.PrimaryScreen.Bounds.Height;
|
|
|
|
|
|
SetPos((ScreenWidth - MainForm.Width) div 2, (ScreenHeight - MainForm.Height) div 2);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function MainFormType.NetForm: Form;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := _MainForm
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- Dialogs ---------------
|
|
|
|
|
|
|
|
|
|
|
|
function CommonDialog.ShowDialog: DialogResult;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := d.ShowDialog;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure FileDialog.SetFilter(f: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
(d as System.Windows.Forms.FileDialog).Filter := f;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function FileDialog.GetFilter: string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (d as System.Windows.Forms.FileDialog).Filter
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor OpenFileDialog.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
d := new System.Windows.Forms.OpenFileDialog;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor SaveFileDialog.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
d := new System.Windows.Forms.SaveFileDialog;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure FileDialog.SetInitialDirectory(f: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
(d as System.Windows.Forms.FileDialog).InitialDirectory := f;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function FileDialog.GetInitialDirectory: string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (d as System.Windows.Forms.FileDialog).InitialDirectory
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure FileDialog.SetFileName(f: string);
|
|
|
|
|
|
begin
|
|
|
|
|
|
(d as System.Windows.Forms.FileDialog).InitialDirectory := f;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function FileDialog.GetFileName: string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (d as System.Windows.Forms.FileDialog).FileName
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- PanelType ---------------
|
|
|
|
|
|
|
|
|
|
|
|
constructor Panel.Create(f: System.Windows.Forms.Panel);
|
|
|
|
|
|
begin
|
|
|
|
|
|
p := f;
|
|
|
|
|
|
NetControl := p;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor Panel.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
p := new System.Windows.Forms.Panel();
|
|
|
|
|
|
//p.BorderStyle := BorderStyle.Fixed3D;
|
|
|
|
|
|
NetControl := p;
|
|
|
|
|
|
ParentControl.Add(p);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function Panel.GetColor: FormsABC.Color;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := p.BackColor;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure Panel.SetColor(c: FormsABC.Color);
|
|
|
|
|
|
begin
|
|
|
|
|
|
p.BackColor := c;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure Panel.SetBorderStyle(bs: BorderStyle);
|
|
|
|
|
|
begin
|
|
|
|
|
|
p.BorderStyle := bs;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function Panel.GetBorderStyle: BorderStyle;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := p.BorderStyle;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function Panel.GetDock: DockStyle;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := p.Dock
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure Panel.SetDock(d: DockStyle);
|
|
|
|
|
|
begin
|
|
|
|
|
|
p.Dock := d;
|
|
|
|
|
|
p.BringToFront;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure Panel.SetWidth(w: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
p.Width := w
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function Panel.GetWidth: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := p.Width
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure Panel.SetHeight(h: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
p.Height := h;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function Panel.GetHeight: integer;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := p.Height
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor FlowPanel.Create;
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited Create(new System.Windows.Forms.FlowLayoutPanel());
|
|
|
|
|
|
ParentControl.Add(p);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
constructor FlowPanel.Create(f: FlowLayoutPanel);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited Create(f);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure FlowPanel.SetFlowDirection(fd: FlowDirection);
|
|
|
|
|
|
begin
|
|
|
|
|
|
FlowLayoutPanel(p).FlowDirection := fd;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function FlowPanel.GetFlowDirection: FlowDirection;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := FlowLayoutPanel(p).FlowDirection;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
//------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---------------
|
|
|
|
|
|
|
|
|
|
|
|
procedure LineBreak;
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainPanel.SetFlowBreak(CurrentControl, true);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure EmptyLine(h: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
var p := new System.Windows.Forms.Panel;
|
|
|
|
|
|
p.Height := h;
|
|
|
|
|
|
ParentControl.Add(p);
|
|
|
|
|
|
CurrentControl := p;
|
|
|
|
|
|
LineBreak;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure EmptySpace(w: integer);
|
|
|
|
|
|
begin
|
|
|
|
|
|
var p := new System.Windows.Forms.Panel;
|
|
|
|
|
|
p.Width := w;
|
|
|
|
|
|
p.Height := 1;
|
|
|
|
|
|
ParentControl.Add(p);
|
|
|
|
|
|
CurrentControl := p;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
var __initialized := false;
|
|
|
|
|
|
var __finalized := false;
|
|
|
|
|
|
|
|
|
|
|
|
procedure __InitModule;
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm := new Form;
|
|
|
|
|
|
_MainPanel := new FlowLayoutPanel;
|
|
|
|
|
|
_MainForm.Text := 'FormsABC.NET';
|
|
|
|
|
|
_MainForm.StartPosition := FormStartPosition.CenterScreen;
|
|
|
|
|
|
_MainPanel.Size := _MainForm.ClientSize;
|
|
|
|
|
|
_MainPanel.Dock := DockStyle.Fill;
|
|
|
|
|
|
MainForm := new MainFormType;
|
|
|
|
|
|
MainPanel := new FlowPanel(_MainPanel);
|
|
|
|
|
|
ParentControl := MainPanel;
|
|
|
|
|
|
nfi := new System.Globalization.NumberFormatInfo();
|
|
|
|
|
|
nfi.NumberGroupSeparator := '.';
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure __FinalizeModule;
|
|
|
|
|
|
begin
|
|
|
|
|
|
_MainForm.Controls.Add(_MainPanel);
|
|
|
|
|
|
if _MainMenu<>nil then
|
|
|
|
|
|
_MainForm.Controls.Add(_MainMenu);
|
|
|
|
|
|
Application.Run(_MainForm);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure __InitModule__;
|
|
|
|
|
|
begin
|
|
|
|
|
|
if not __initialized then
|
|
|
|
|
|
begin
|
|
|
|
|
|
__initialized := true;
|
|
|
|
|
|
__InitModule;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure __FinalizeModule__;
|
|
|
|
|
|
begin
|
|
|
|
|
|
if not __finalized then
|
|
|
|
|
|
begin
|
|
|
|
|
|
__finalized := true;
|
|
|
|
|
|
__FinalizeModule;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
initialization
|
|
|
|
|
|
__InitModule;
|
|
|
|
|
|
finalization
|
|
|
|
|
|
__FinalizeModule;
|
|
|
|
|
|
end.
|