328 lines
12 KiB
ObjectPascal
328 lines
12 KiB
ObjectPascal
|
{ Compiletime Extctrls support }
|
||
|
unit uPSC_extctrls;
|
||
|
|
||
|
{$I PascalScript.inc}
|
||
|
interface
|
||
|
uses
|
||
|
uPSCompiler, uPSUtils;
|
||
|
|
||
|
(*
|
||
|
Will register files from:
|
||
|
ExtCtrls
|
||
|
|
||
|
Requires:
|
||
|
STD, classes, controls, graphics {$IFNDEF PS_MINIVCL}, stdctrls {$ENDIF}
|
||
|
*)
|
||
|
|
||
|
procedure SIRegister_ExtCtrls_TypesAndConsts(cl: TPSPascalCompiler);
|
||
|
|
||
|
procedure SIRegisterTSHAPE(Cl: TPSPascalCompiler);
|
||
|
procedure SIRegisterTIMAGE(Cl: TPSPascalCompiler);
|
||
|
procedure SIRegisterTPAINTBOX(Cl: TPSPascalCompiler);
|
||
|
procedure SIRegisterTBEVEL(Cl: TPSPascalCompiler);
|
||
|
procedure SIRegisterTTIMER(Cl: TPSPascalCompiler);
|
||
|
procedure SIRegisterTCUSTOMPANEL(Cl: TPSPascalCompiler);
|
||
|
procedure SIRegisterTPANEL(Cl: TPSPascalCompiler);
|
||
|
{$IFNDEF CLX}
|
||
|
procedure SIRegisterTPAGE(Cl: TPSPascalCompiler);
|
||
|
procedure SIRegisterTNOTEBOOK(Cl: TPSPascalCompiler);
|
||
|
procedure SIRegisterTHEADER(Cl: TPSPascalCompiler);
|
||
|
{$ENDIF}
|
||
|
procedure SIRegisterTCUSTOMRADIOGROUP(Cl: TPSPascalCompiler);
|
||
|
procedure SIRegisterTRADIOGROUP(Cl: TPSPascalCompiler);
|
||
|
|
||
|
procedure SIRegister_ExtCtrls(cl: TPSPascalCompiler);
|
||
|
|
||
|
implementation
|
||
|
procedure SIRegisterTSHAPE(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
with Cl.AddClassN(cl.FindClass('TGRAPHICCONTROL'), 'TSHAPE') do
|
||
|
begin
|
||
|
RegisterProperty('BRUSH', 'TBRUSH', iptrw);
|
||
|
RegisterProperty('PEN', 'TPEN', iptrw);
|
||
|
RegisterProperty('SHAPE', 'TSHAPETYPE', iptrw);
|
||
|
|
||
|
{$IFNDEF PS_MINIVCL}
|
||
|
RegisterMethod('procedure STYLECHANGED(SENDER:TOBJECT)');
|
||
|
RegisterProperty('DRAGCURSOR', 'Longint', iptrw);
|
||
|
RegisterProperty('DRAGMODE', 'TDragMode', iptrw);
|
||
|
RegisterProperty('PARENTSHOWHINT', 'Boolean', iptrw);
|
||
|
RegisterProperty('ONDRAGDROP', 'TDragDropEvent', iptrw);
|
||
|
RegisterProperty('ONDRAGOVER', 'TDragOverEvent', iptrw);
|
||
|
RegisterProperty('ONENDDRAG', 'TEndDragEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEDOWN', 'TMouseEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEMOVE', 'TMouseMoveEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEUP', 'TMouseEvent', iptrw);
|
||
|
RegisterProperty('ONSTARTDRAG', 'TStartDragEvent', iptrw);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure SIRegisterTIMAGE(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
with Cl.AddClassN(cl.FindClass('TGRAPHICCONTROL'), 'TIMAGE') do
|
||
|
begin
|
||
|
RegisterProperty('CANVAS', 'TCANVAS', iptr);
|
||
|
RegisterProperty('AUTOSIZE', 'BOOLEAN', iptrw);
|
||
|
RegisterProperty('CENTER', 'BOOLEAN', iptrw);
|
||
|
RegisterProperty('PICTURE', 'TPICTURE', iptrw);
|
||
|
RegisterProperty('STRETCH', 'BOOLEAN', iptrw);
|
||
|
RegisterProperty('ONCLICK', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONDBLCLICK', 'TNotifyEvent', iptrw);
|
||
|
|
||
|
{$IFNDEF PS_MINIVCL}
|
||
|
RegisterProperty('DRAGCURSOR', 'Longint', iptrw);
|
||
|
RegisterProperty('DRAGMODE', 'TDragMode', iptrw);
|
||
|
RegisterProperty('PARENTSHOWHINT', 'Boolean', iptrw);
|
||
|
RegisterProperty('POPUPMENU', 'TPopupMenu', iptrw);
|
||
|
RegisterProperty('ONDRAGDROP', 'TDragDropEvent', iptrw);
|
||
|
RegisterProperty('ONDRAGOVER', 'TDragOverEvent', iptrw);
|
||
|
RegisterProperty('ONENDDRAG', 'TEndDragEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEDOWN', 'TMouseEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEMOVE', 'TMouseMoveEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEUP', 'TMouseEvent', iptrw);
|
||
|
RegisterProperty('ONSTARTDRAG', 'TStartDragEvent', iptrw);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure SIRegisterTPAINTBOX(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
with Cl.AddClassN(cl.FindClass('TGRAPHICCONTROL'), 'TPAINTBOX') do
|
||
|
begin
|
||
|
RegisterProperty('CANVAS', 'TCanvas', iptr);
|
||
|
RegisterProperty('COLOR', 'TColor', iptrw);
|
||
|
RegisterProperty('FONT', 'TFont', iptrw);
|
||
|
RegisterProperty('PARENTCOLOR', 'Boolean', iptrw);
|
||
|
RegisterProperty('PARENTFONT', 'Boolean', iptrw);
|
||
|
RegisterProperty('ONCLICK', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONDBLCLICK', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONPAINT', 'TNOTIFYEVENT', iptrw);
|
||
|
|
||
|
{$IFNDEF PS_MINIVCL}
|
||
|
RegisterProperty('DRAGCURSOR', 'Longint', iptrw);
|
||
|
RegisterProperty('DRAGMODE', 'TDragMode', iptrw);
|
||
|
RegisterProperty('PARENTSHOWHINT', 'Boolean', iptrw);
|
||
|
RegisterProperty('POPUPMENU', 'TPopupMenu', iptrw);
|
||
|
RegisterProperty('ONDRAGDROP', 'TDragDropEvent', iptrw);
|
||
|
RegisterProperty('ONDRAGOVER', 'TDragOverEvent', iptrw);
|
||
|
RegisterProperty('ONENDDRAG', 'TEndDragEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEDOWN', 'TMouseEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEMOVE', 'TMouseMoveEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEUP', 'TMouseEvent', iptrw);
|
||
|
RegisterProperty('ONSTARTDRAG', 'TStartDragEvent', iptrw);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure SIRegisterTBEVEL(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
with Cl.AddClassN(cl.FindClass('TGRAPHICCONTROL'), 'TBEVEL') do
|
||
|
begin
|
||
|
RegisterProperty('SHAPE', 'TBEVELSHAPE', iptrw);
|
||
|
RegisterProperty('STYLE', 'TBEVELSTYLE', iptrw);
|
||
|
|
||
|
{$IFNDEF PS_MINIVCL}
|
||
|
RegisterProperty('PARENTSHOWHINT', 'Boolean', iptrw);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure SIRegisterTTIMER(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
with Cl.AddClassN(cl.FindClass('TCOMPONENT'), 'TTIMER') do
|
||
|
begin
|
||
|
RegisterProperty('ENABLED', 'BOOLEAN', iptrw);
|
||
|
RegisterProperty('INTERVAL', 'CARDINAL', iptrw);
|
||
|
RegisterProperty('ONTIMER', 'TNOTIFYEVENT', iptrw);
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure SIRegisterTCUSTOMPANEL(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
Cl.AddClassN(cl.FindClass('TCUSTOMCONTROL'), 'TCUSTOMPANEL');
|
||
|
end;
|
||
|
|
||
|
procedure SIRegisterTPANEL(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
with Cl.AddClassN(cl.FindClass('TCUSTOMPANEL'), 'TPANEL') do
|
||
|
begin
|
||
|
RegisterProperty('ALIGNMENT', 'TAlignment', iptrw);
|
||
|
RegisterProperty('BEVELINNER', 'TPanelBevel', iptrw);
|
||
|
RegisterProperty('BEVELOUTER', 'TPanelBevel', iptrw);
|
||
|
RegisterProperty('BEVELWIDTH', 'TBevelWidth', iptrw);
|
||
|
RegisterProperty('BORDERWIDTH', 'TBorderWidth', iptrw);
|
||
|
RegisterProperty('BORDERSTYLE', 'TBorderStyle', iptrw);
|
||
|
RegisterProperty('CAPTION', 'String', iptrw);
|
||
|
RegisterProperty('COLOR', 'TColor', iptrw);
|
||
|
RegisterProperty('FONT', 'TFont', iptrw);
|
||
|
RegisterProperty('PARENTCOLOR', 'Boolean', iptrw);
|
||
|
RegisterProperty('PARENTFONT', 'Boolean', iptrw);
|
||
|
RegisterProperty('ONCLICK', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONDBLCLICK', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONENTER', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONEXIT', 'TNotifyEvent', iptrw);
|
||
|
|
||
|
{$IFNDEF PS_MINIVCL}
|
||
|
RegisterProperty('DRAGCURSOR', 'Longint', iptrw);
|
||
|
RegisterProperty('DRAGMODE', 'TDragMode', iptrw);
|
||
|
RegisterProperty('CTL3D', 'Boolean', iptrw);
|
||
|
RegisterProperty('LOCKED', 'Boolean', iptrw);
|
||
|
RegisterProperty('PARENTCTL3D', 'Boolean', iptrw);
|
||
|
RegisterProperty('PARENTSHOWHINT', 'Boolean', iptrw);
|
||
|
RegisterProperty('POPUPMENU', 'TPopupMenu', iptrw);
|
||
|
RegisterProperty('ONDRAGDROP', 'TDragDropEvent', iptrw);
|
||
|
RegisterProperty('ONDRAGOVER', 'TDragOverEvent', iptrw);
|
||
|
RegisterProperty('ONENDDRAG', 'TEndDragEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEDOWN', 'TMouseEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEMOVE', 'TMouseMoveEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEUP', 'TMouseEvent', iptrw);
|
||
|
RegisterProperty('ONRESIZE', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONSTARTDRAG', 'TStartDragEvent', iptrw);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
end;
|
||
|
{$IFNDEF CLX}
|
||
|
procedure SIRegisterTPAGE(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
with Cl.AddClassN(cl.FindClass('TCUSTOMCONTROL'), 'TPAGE') do
|
||
|
begin
|
||
|
RegisterProperty('CAPTION', 'String', iptrw);
|
||
|
end;
|
||
|
end;
|
||
|
procedure SIRegisterTNOTEBOOK(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
with Cl.AddClassN(cl.FindClass('TCUSTOMCONTROL'), 'TNOTEBOOK') do
|
||
|
begin
|
||
|
RegisterProperty('ACTIVEPAGE', 'STRING', iptrw);
|
||
|
RegisterProperty('COLOR', 'TColor', iptrw);
|
||
|
RegisterProperty('FONT', 'TFont', iptrw);
|
||
|
RegisterProperty('PAGEINDEX', 'INTEGER', iptrw);
|
||
|
RegisterProperty('PAGES', 'TSTRINGS', iptrw);
|
||
|
RegisterProperty('PARENTCOLOR', 'Boolean', iptrw);
|
||
|
RegisterProperty('PARENTFONT', 'Boolean', iptrw);
|
||
|
RegisterProperty('ONCLICK', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONDBLCLICK', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONENTER', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONEXIT', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONPAGECHANGED', 'TNOTIFYEVENT', iptrw);
|
||
|
|
||
|
{$IFNDEF PS_MINIVCL}
|
||
|
RegisterProperty('CTL3D', 'Boolean', iptrw);
|
||
|
RegisterProperty('DRAGCURSOR', 'Longint', iptrw);
|
||
|
RegisterProperty('DRAGMODE', 'TDragMode', iptrw);
|
||
|
RegisterProperty('PARENTCTL3D', 'Boolean', iptrw);
|
||
|
RegisterProperty('PARENTSHOWHINT', 'Boolean', iptrw);
|
||
|
RegisterProperty('POPUPMENU', 'TPopupMenu', iptrw);
|
||
|
RegisterProperty('ONDRAGDROP', 'TDragDropEvent', iptrw);
|
||
|
RegisterProperty('ONDRAGOVER', 'TDragOverEvent', iptrw);
|
||
|
RegisterProperty('ONENDDRAG', 'TEndDragEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEDOWN', 'TMouseEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEMOVE', 'TMouseMoveEvent', iptrw);
|
||
|
RegisterProperty('ONMOUSEUP', 'TMouseEvent', iptrw);
|
||
|
RegisterProperty('ONSTARTDRAG', 'TStartDragEvent', iptrw);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure SIRegisterTHEADER(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
with Cl.AddClassN(cl.FindClass('TCUSTOMCONTROL'), 'THEADER') do
|
||
|
begin
|
||
|
RegisterProperty('SECTIONWIDTH', 'INTEGER INTEGER', iptrw);
|
||
|
RegisterProperty('ALLOWRESIZE', 'BOOLEAN', iptrw);
|
||
|
RegisterProperty('BORDERSTYLE', 'TBORDERSTYLE', iptrw);
|
||
|
RegisterProperty('FONT', 'TFont', iptrw);
|
||
|
RegisterProperty('PARENTFONT', 'Boolean', iptrw);
|
||
|
RegisterProperty('SECTIONS', 'TSTRINGS', iptrw);
|
||
|
RegisterProperty('ONSIZING', 'TSECTIONEVENT', iptrw);
|
||
|
RegisterProperty('ONSIZED', 'TSECTIONEVENT', iptrw);
|
||
|
|
||
|
{$IFNDEF PS_MINIVCL}
|
||
|
RegisterProperty('PARENTSHOWHINT', 'Boolean', iptrw);
|
||
|
RegisterProperty('POPUPMENU', 'TPopupMenu', iptrw);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
end;
|
||
|
{$ENDIF}
|
||
|
|
||
|
procedure SIRegisterTCUSTOMRADIOGROUP(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
Cl.AddClassN(cl.FindClass('TCUSTOMGROUPBOX'), 'TCUSTOMRADIOGROUP');
|
||
|
end;
|
||
|
|
||
|
procedure SIRegisterTRADIOGROUP(Cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
with Cl.AddClassN(cl.FindClass('TCUSTOMRADIOGROUP'), 'TRADIOGROUP') do
|
||
|
begin
|
||
|
RegisterProperty('CAPTION', 'String', iptrw);
|
||
|
RegisterProperty('COLOR', 'TColor', iptrw);
|
||
|
RegisterProperty('COLUMNS', 'Integer', iptrw);
|
||
|
RegisterProperty('FONT', 'TFont', iptrw);
|
||
|
RegisterProperty('ITEMINDEX', 'Integer', iptrw);
|
||
|
RegisterProperty('ITEMS', 'TStrings', iptrw);
|
||
|
RegisterProperty('PARENTCOLOR', 'Boolean', iptrw);
|
||
|
RegisterProperty('PARENTFONT', 'Boolean', iptrw);
|
||
|
RegisterProperty('ONCLICK', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONENTER', 'TNotifyEvent', iptrw);
|
||
|
RegisterProperty('ONEXIT', 'TNotifyEvent', iptrw);
|
||
|
|
||
|
{$IFNDEF PS_MINIVCL}
|
||
|
RegisterProperty('CTL3D', 'Boolean', iptrw);
|
||
|
RegisterProperty('DRAGCURSOR', 'Longint', iptrw);
|
||
|
RegisterProperty('DRAGMODE', 'TDragMode', iptrw);
|
||
|
RegisterProperty('PARENTCTL3D', 'Boolean', iptrw);
|
||
|
RegisterProperty('PARENTSHOWHINT', 'Boolean', iptrw);
|
||
|
RegisterProperty('POPUPMENU', 'TPopupMenu', iptrw);
|
||
|
RegisterProperty('ONDRAGDROP', 'TDragDropEvent', iptrw);
|
||
|
RegisterProperty('ONDRAGOVER', 'TDragOverEvent', iptrw);
|
||
|
RegisterProperty('ONENDDRAG', 'TEndDragEvent', iptrw);
|
||
|
RegisterProperty('ONSTARTDRAG', 'TStartDragEvent', iptrw);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure SIRegister_ExtCtrls_TypesAndConsts(cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
cl.AddTypeS('TShapeType', '(stRectangle, stSquare, stRoundRect, stRoundSquare, stEllipse, stCircle)');
|
||
|
cl.AddTypeS('TBevelStyle', '(bsLowered, bsRaised)');
|
||
|
cl.AddTypeS('TBevelShape', '(bsBox, bsFrame, bsTopLine, bsBottomLine, bsLeftLine, bsRightLine,bsSpacer)');
|
||
|
cl.AddTypeS('TPanelBevel', '(bvNone, bvLowered, bvRaised,bvSpace)');
|
||
|
cl.AddTypeS('TBevelWidth', 'Longint');
|
||
|
cl.AddTypeS('TBorderWidth', 'Longint');
|
||
|
cl.AddTypeS('TSectionEvent', 'procedure(Sender: TObject; ASection, AWidth: Integer)');
|
||
|
end;
|
||
|
|
||
|
procedure SIRegister_ExtCtrls(cl: TPSPascalCompiler);
|
||
|
begin
|
||
|
SIRegister_ExtCtrls_TypesAndConsts(cl);
|
||
|
|
||
|
{$IFNDEF PS_MINIVCL}
|
||
|
SIRegisterTSHAPE(Cl);
|
||
|
SIRegisterTIMAGE(Cl);
|
||
|
SIRegisterTPAINTBOX(Cl);
|
||
|
{$ENDIF}
|
||
|
SIRegisterTBEVEL(Cl);
|
||
|
{$IFNDEF PS_MINIVCL}
|
||
|
SIRegisterTTIMER(Cl);
|
||
|
{$ENDIF}
|
||
|
SIRegisterTCUSTOMPANEL(Cl);
|
||
|
SIRegisterTPANEL(Cl);
|
||
|
{$IFNDEF PS_MINIVCL}
|
||
|
{$IFNDEF CLX}
|
||
|
SIRegisterTPAGE(Cl);
|
||
|
SIRegisterTNOTEBOOK(Cl);
|
||
|
SIRegisterTHEADER(Cl);
|
||
|
{$ENDIF}
|
||
|
SIRegisterTCUSTOMRADIOGROUP(Cl);
|
||
|
SIRegisterTRADIOGROUP(Cl);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
|
||
|
end.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|