📄 fs_iformsrtti.pas
字号:
{******************************************}
{ }
{ FastScript v1.8 }
{ Forms and StdCtrls }
{ }
{ (c) 2003-2005 by Alexander Tzyganenko, }
{ Fast Reports Inc }
{ }
{******************************************}
unit fs_iformsrtti;
interface
{$i fs.inc}
uses
SysUtils, Classes, fs_iinterpreter, fs_ievents, fs_iclassesrtti,
fs_igraphicsrtti
{$IFDEF CLX}
, QControls, QForms, QStdCtrls
{$ELSE}
, Windows, Controls, Forms, StdCtrls
{$ENDIF};
type
TfsFormsRTTI = class(TComponent); // fake component
implementation
type
TFunctions = class(TObject)
private
function CallMethod(Instance: TObject; ClassType: TClass;
const MethodName: String; var Params: Variant): Variant;
function GetProp(Instance: TObject; ClassType: TClass;
const PropName: String): Variant;
procedure SetProp(Instance: TObject; ClassType: TClass;
const PropName: String; Value: Variant);
public
constructor Create;
destructor Destroy; override;
end;
var
Functions: TFunctions;
{ TFunctions }
constructor TFunctions.Create;
begin
with fsGlobalUnit do
begin
AddedBy := Self;
AddConst('mrNone', 'Integer', mrNone);
AddConst('mrOk', 'Integer', mrOk);
AddConst('mrCancel', 'Integer', mrCancel);
AddConst('mrAbort', 'Integer', mrAbort);
AddConst('mrRetry', 'Integer', mrRetry);
AddConst('mrIgnore', 'Integer', mrIgnore);
AddConst('mrYes', 'Integer', mrYes);
AddConst('mrNo', 'Integer', mrNo);
AddConst('mrAll', 'Integer', mrAll);
AddConst('mrNoToAll', 'Integer', mrNoToAll);
AddConst('mrYesToAll', 'Integer', mrYesToAll);
AddConst('crDefault', 'Integer', crDefault);
AddConst('crNone', 'Integer', crNone);
AddConst('crArrow', 'Integer', crArrow);
AddConst('crCross', 'Integer', crCross);
AddConst('crIBeam', 'Integer', crIBeam);
AddConst('crSize', 'Integer', crSize);
AddConst('crSizeNESW', 'Integer', crSizeNESW);
AddConst('crSizeNS', 'Integer', crSizeNS);
AddConst('crSizeNWSE', 'Integer', crSizeNWSE);
AddConst('crSizeWE', 'Integer', crSizeWE);
AddConst('crUpArrow', 'Integer', crUpArrow);
AddConst('crHourGlass', 'Integer', crHourGlass);
AddConst('crDrag', 'Integer', crDrag);
AddConst('crNoDrop', 'Integer', crNoDrop);
AddConst('crHSplit', 'Integer', crHSplit);
AddConst('crVSplit', 'Integer', crVSplit);
AddConst('crMultiDrag', 'Integer', crMultiDrag);
AddConst('crSQLWait', 'Integer', crSQLWait);
AddConst('crNo', 'Integer', crNo);
AddConst('crAppStart', 'Integer', crAppStart);
AddConst('crHelp', 'Integer', crHelp);
AddConst('crHandPoint', 'Integer', crHandPoint);
AddConst('crSizeAll', 'Integer', crSizeAll);
{$IFDEF LINUX}
AddConst('bsNone', 'Integer', fbsNone);
AddConst('bsSingle', 'Integer', fbsSingle);
AddConst('bsSizeable', 'Integer', fbsSizeable);
AddConst('bsDialog', 'Integer', fbsDialog);
AddConst('bsToolWindow', 'Integer', fbsToolWindow);
AddConst('bsSizeToolWin', 'Integer', fbsSizeToolWin);
{$ELSE}
AddConst('bsNone', 'Integer', bsNone);
AddConst('bsSingle', 'Integer', bsSingle);
AddConst('bsSizeable', 'Integer', bsSizeable);
AddConst('bsDialog', 'Integer', bsDialog);
AddConst('bsToolWindow', 'Integer', bsToolWindow);
AddConst('bsSizeToolWin', 'Integer', bsSizeToolWin);
{$ENDIF}
{$IFNDEF CLX}
AddConst('VK_RBUTTON', 'Integer', VK_RBUTTON);
AddConst('VK_CANCEL', 'Integer', VK_CANCEL);
AddConst('VK_MBUTTON', 'Integer', VK_MBUTTON);
AddConst('VK_BACK', 'Integer', VK_BACK);//Backspace key
AddConst('VK_TAB', 'Integer', VK_TAB);//Tab key
AddConst('VK_RETURN', 'Integer', VK_RETURN);//Enter key
AddConst('VK_SHIFT', 'Integer', VK_SHIFT);//Shift key
AddConst('VK_CONTROL', 'Integer', VK_CONTROL);//Ctrl key
AddConst('VK_MENU', 'Integer', VK_MENU);//Alt key
AddConst('VK_PAUSE', 'Integer', VK_PAUSE);//Pause key
AddConst('VK_CAPITAL', 'Integer', VK_CAPITAL);//Caps Lock key
AddConst('VK_ESCAPE', 'Integer', VK_ESCAPE);//Esc key
AddConst('VK_SPACE', 'Integer', VK_SPACE);//Space bar
AddConst('VK_PRIOR', 'Integer', VK_PRIOR);//Page Up key
AddConst('VK_NEXT', 'Integer', VK_NEXT);// Page Down key
AddConst('VK_END', 'Integer', VK_END);// End key
AddConst('VK_HOME', 'Integer', VK_HOME);// Home key
AddConst('VK_LEFT', 'Integer', VK_LEFT);// Left Arrow key
AddConst('VK_UP', 'Integer', VK_UP);// Up Arrow key
AddConst('VK_RIGHT', 'Integer', VK_RIGHT);// Right Arrow key
AddConst('VK_DOWN', 'Integer', VK_DOWN);// Down Arrow key
AddConst('VK_INSERT', 'Integer', VK_INSERT);// Insert key
AddConst('VK_DELETE', 'Integer', VK_DELETE);// Delete key
AddConst('VK_HELP', 'Integer', VK_HELP);// Help key
AddConst('VK_LWIN', 'Integer', VK_LWIN);// Left Windows key (Microsoft keyboard)
AddConst('VK_RWIN', 'Integer', VK_RWIN);// Right Windows key (Microsoft keyboard)
AddConst('VK_APPS', 'Integer', VK_APPS);// Applications key (Microsoft keyboard)
AddConst('VK_NUMPAD0', 'Integer', VK_NUMPAD0);// 0 key (numeric keypad)
AddConst('VK_NUMPAD1', 'Integer', VK_NUMPAD1);// 1 key (numeric keypad)
AddConst('VK_NUMPAD2', 'Integer', VK_NUMPAD2);// 2 key (numeric keypad)
AddConst('VK_NUMPAD3', 'Integer', VK_NUMPAD3);// 3 key (numeric keypad)
AddConst('VK_NUMPAD4', 'Integer', VK_NUMPAD4);// 4 key (numeric keypad)
AddConst('VK_NUMPAD5', 'Integer', VK_NUMPAD5);// 5 key (numeric keypad)
AddConst('VK_NUMPAD6', 'Integer', VK_NUMPAD6);// 6 key (numeric keypad)
AddConst('VK_NUMPAD7', 'Integer', VK_NUMPAD7);// 7 key (numeric keypad)
AddConst('VK_NUMPAD8', 'Integer', VK_NUMPAD8);// 8 key (numeric keypad)
AddConst('VK_NUMPAD9', 'Integer', VK_NUMPAD9);// 9 key (numeric keypad)
AddConst('VK_MULTIPLY', 'Integer', VK_MULTIPLY);// Multiply key (numeric keypad)
AddConst('VK_ADD', 'Integer', VK_ADD);// Add key (numeric keypad)
AddConst('VK_SEPARATOR', 'Integer', VK_SEPARATOR);// Separator key (numeric keypad)
AddConst('VK_SUBTRACT', 'Integer', VK_SUBTRACT);// Subtract key (numeric keypad)
AddConst('VK_DECIMAL', 'Integer', VK_DECIMAL);// Decimal key (numeric keypad)
AddConst('VK_DIVIDE', 'Integer', VK_DIVIDE);// Divide key (numeric keypad)
AddConst('VK_F1', 'Integer', VK_F1);// F1 key
AddConst('VK_F1', 'Integer', VK_F2);// F2 key
AddConst('VK_F3', 'Integer', VK_F3);// F3 key
AddConst('VK_F4', 'Integer', VK_F4);// F4 key
AddConst('VK_F5', 'Integer', VK_F5);// F5 key
AddConst('VK_F6', 'Integer', VK_F6);// F6 key
AddConst('VK_F7', 'Integer', VK_F7);// F7 key
AddConst('VK_F8', 'Integer', VK_F8);// F8 key
AddConst('VK_F9', 'Integer', VK_F9);// F9 key
AddConst('VK_F10', 'Integer', VK_F10);// F10 key
AddConst('VK_F11', 'Integer', VK_F11);// F11 key
AddConst('VK_F12', 'Integer', VK_F12);// F12 key
AddConst('VK_NUMLOCK', 'Integer', VK_NUMLOCK);// Num Lock key
AddConst('VK_SCROLL', 'Integer', VK_SCROLL);// Scroll Lock key
{$ENDIF}
AddConst('crDefault', 'Integer', crDefault);
AddConst('crNone', 'Integer', crNone);
AddConst('crArrow', 'Integer', crArrow);
AddConst('crCross', 'Integer', crCross);
AddConst('crIBeam', 'Integer', crIBeam);
AddConst('crSize', 'Integer', crSize);
AddConst('crSizeNESW', 'Integer', crSizeNESW);
AddConst('crSizeNS', 'Integer', crSizeNS);
AddConst('crSizeNWSE', 'Integer', crSizeNWSE);
AddConst('crSizeWE', 'Integer', crSizeWE);
AddConst('crUpArrow', 'Integer', crUpArrow);
AddConst('crHourGlass', 'Integer', crHourGlass);
AddConst('crDrag', 'Integer', crDrag);
AddConst('crNoDrop', 'Integer', crNoDrop);
AddConst('crHSplit', 'Integer', crHSplit);
AddConst('crVSplit', 'Integer', crVSplit);
AddConst('crMultiDrag', 'Integer', crMultiDrag);
AddConst('crSQLWait', 'Integer', crSQLWait);
AddConst('crNo', 'Integer', crNo);
AddConst('crAppStart', 'Integer', crAppStart);
AddConst('crHelp', 'Integer', crHelp);
AddConst('crHandPoint', 'Integer', crHandPoint);
AddConst('crSizeAll', 'Integer', crSizeAll);
AddType('TFormBorderStyle', fvtInt);
AddType('TBorderStyle', fvtInt);
AddEnumSet('TShiftState', 'ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble');
AddEnum('TAlignment', 'taLeftJustify, taRightJustify, taCenter');
AddEnum('TAlign', 'alNone, alTop, alBottom, alLeft, alRight, alClient');
AddEnum('TMouseButton', 'mbLeft, mbRight, mbMiddle');
AddEnumSet('TAnchors', 'akLeft, akTop, akRight, akBottom');
AddEnum('TBevelCut', 'bvNone, bvLowered, bvRaised, bvSpace');
AddEnum('TTextLayout', 'tlTop, tlCenter, tlBottom');
AddEnum('TEditCharCase', 'ecNormal, ecUpperCase, ecLowerCase');
AddEnum('TScrollStyle', 'ssNone, ssHorizontal, ssVertical, ssBoth');
AddEnum('TComboBoxStyle', 'csDropDown, csSimple, csDropDownList, csOwnerDrawFixed, csOwnerDrawVariable');
AddEnum('TCheckBoxState', 'cbUnchecked, cbChecked, cbGrayed');
AddEnum('TListBoxStyle', 'lbStandard, lbOwnerDrawFixed, lbOwnerDrawVariable');
AddEnum('TWindowState', 'wsNormal, wsMinimized, wsMaximized');
AddEnum('TFormStyle', 'fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop');
AddEnumSet('TBorderIcons', 'biSystemMenu, biMinimize, biMaximize, biHelp');
AddEnum('TPosition', 'poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter, poDesktopCenter');
AddEnum('TCloseAction', 'caNone, caHide, caFree, caMinimize');
with AddClass(TControl, 'TComponent') do
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -