355 lines
13 KiB
ObjectPascal
355 lines
13 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
|
|
{$IFDEF DELPHI4UP}
|
|
RegisterProperty('Anchors', 'TAnchors', iptrw);
|
|
{$ENDIF}
|
|
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
|
|
{$IFDEF DELPHI4UP}
|
|
RegisterProperty('Anchors', 'TAnchors', iptrw);
|
|
{$ENDIF}
|
|
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
|
|
{$IFDEF DELPHI4UP}
|
|
RegisterProperty('Anchors', 'TAnchors', iptrw);
|
|
{$ENDIF}
|
|
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
|
|
{$IFDEF DELPHI4UP}
|
|
RegisterProperty('Anchors', 'TAnchors', iptrw);
|
|
{$ENDIF}
|
|
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);
|
|
{$IFDEF DELPHI4UP}
|
|
RegisterProperty('Anchors', 'TAnchors', iptrw);
|
|
{$ENDIF}
|
|
RegisterProperty('BevelInner', 'TPanelBevel', iptrw);
|
|
RegisterProperty('BevelOuter', 'TPanelBevel', iptrw);
|
|
{$IFDEF DELPHI2009UP}
|
|
RegisterProperty('BevelKind', 'TBevelKind', iptrw);
|
|
{$ENDIF}
|
|
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);
|
|
{$IFDEF DELPHI4UP}
|
|
RegisterProperty('Anchors', 'TAnchors', iptrw);
|
|
{$ENDIF}
|
|
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);
|
|
{$IFDEF DELPHI4UP}
|
|
RegisterProperty('Anchors', 'TAnchors', iptrw);
|
|
{$ENDIF}
|
|
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
|
|
{$IFDEF DELPHI4UP}
|
|
RegisterProperty('Anchors', 'TAnchors', iptrw);
|
|
{$ENDIF}
|
|
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.
|
|
|
|
|
|
|
|
|
|
|