home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sibylft1.zip / DOC.DAT / DOC / SPCC / EXTCTRLS.PAS < prev    next >
Pascal/Delphi Source File  |  1997-04-08  |  12KB  |  369 lines

  1.  
  2. {╔══════════════════════════════════════════════════════════════════════════╗
  3.  ║                                                                          ║
  4.  ║     Sibyl Portable Component Classes                                     ║
  5.  ║                                                                          ║
  6.  ║     Copyright (c) 1995,97 SpeedSoft Germany,   All rights reserved.      ║
  7.  ║                                                                          ║
  8.  ╚══════════════════════════════════════════════════════════════════════════╝}
  9.  
  10. UNIT ExtCtrls;
  11.  
  12.  
  13. INTERFACE
  14.  
  15. USES SysUtils,Classes,Forms,Graphics,Buttons,StdCtrls;
  16.  
  17.  
  18. TYPE
  19.     TShapeType=(stRectangle,stSquare,stRoundRect,stRoundSquare,
  20.                 stEllipse,stCircle,stTriangle);
  21.  
  22.     TShape=CLASS(TControl)
  23.       PRIVATE
  24.          FPen:TPen;
  25.          FBrush:TBrush;
  26.          FShape:TShapeType;
  27.          PROCEDURE SetShape(NewShape:TShapeType);
  28.       PROTECTED
  29.          PROCEDURE SetupComponent;OVERRIDE;
  30.          PROCEDURE SetupShow;OVERRIDE;
  31.          PROPERTY Canvas;
  32.       PUBLIC
  33.          PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
  34.          PROPERTY XAlign;
  35.          PROPERTY XStretch;
  36.          PROPERTY YAlign;
  37.          PROPERTY YStretch;
  38.       PUBLISHED
  39.          PROPERTY Align;
  40.          PROPERTY Brush:TBrush read FBrush;
  41.          PROPERTY DragCursor;
  42.          PROPERTY DragMode;
  43.          PROPERTY Enabled;
  44.          PROPERTY ParentShowHint;
  45.          PROPERTY Pen:TPen read FPen;
  46.          PROPERTY Shape:TShapeType read FShape write SetShape;
  47.          PROPERTY ShowHint;
  48.          PROPERTY Visible;
  49.          PROPERTY ZOrder;
  50.  
  51.          PROPERTY OnCanDrag;
  52.          PROPERTY OnDragDrop;
  53.          PROPERTY OnDragOver;
  54.          PROPERTY OnEndDrag;
  55.          PROPERTY OnMouseClick;
  56.          PROPERTY OnMouseDblClick;
  57.          PROPERTY OnMouseDown;
  58.          PROPERTY OnMouseMove;
  59.          PROPERTY OnMouseUp;
  60.          PROPERTY OnSetupShow;
  61.          PROPERTY OnStartDrag;
  62.     END;
  63.  
  64.  
  65.     TPaintBox=CLASS(TControl)
  66.       PROTECTED
  67.          PROCEDURE SetupComponent;OVERRIDE;
  68.       PUBLIC
  69.          PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
  70.          PROPERTY XAlign;
  71.          PROPERTY XStretch;
  72.          PROPERTY YAlign;
  73.          PROPERTY YStretch;
  74.       PUBLISHED
  75.          PROPERTY Align;
  76.          PROPERTY Color;
  77.          PROPERTY PenColor;
  78.          PROPERTY DragCursor;
  79.          PROPERTY DragMode;
  80.          PROPERTY Enabled;
  81.          PROPERTY Font;
  82.          PROPERTY ParentColor;
  83.          PROPERTY ParentPenColor;
  84.          PROPERTY ParentFont;
  85.          PROPERTY ParentShowHint;
  86.          PROPERTY ShowHint;
  87.          PROPERTY Visible;
  88.          PROPERTY ZOrder;
  89.  
  90.          PROPERTY OnCanDrag;
  91.          {Rene}
  92.          PROPERTY OnDblClick;
  93.          PROPERTY OnDragDrop;
  94.          PROPERTY OnDragOver;
  95.          PROPERTY OnEndDrag;
  96.          PROPERTY OnFontChange;
  97.          PROPERTY OnMouseClick;
  98.          PROPERTY OnMouseDblClick;
  99.          PROPERTY OnMouseDown;
  100.          PROPERTY OnMouseMove;
  101.          PROPERTY OnMouseUp;
  102.          PROPERTY OnPaint;
  103.          PROPERTY OnSetupShow;
  104.          PROPERTY OnStartDrag;
  105.     END;
  106.  
  107.  
  108.     TImage=CLASS(TControl)
  109.       PRIVATE
  110.          FBitmap:TBitmap;
  111.          FNeedBitmap:BOOLEAN;
  112.          FAutoSize:BOOLEAN;
  113.          FStretch:BOOLEAN;
  114.          FCenter:BOOLEAN;
  115.          PROCEDURE SetStretch(NewValue:BOOLEAN);
  116.          PROCEDURE SetCenter(NewValue:BOOLEAN);
  117.          PROCEDURE SetBitmap(NewBitmap:TBitmap);
  118.          FUNCTION GetBitmap:TBitmap;
  119.       PROTECTED
  120.          PROCEDURE SetupComponent;OVERRIDE;
  121.          PROCEDURE SetupShow;OVERRIDE;
  122.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  123.          PROPERTY NeedBitmap:BOOLEAN read FNeedBitmap write FNeedBitmap;
  124.       PUBLIC
  125.          DESTRUCTOR Destroy;OVERRIDE;
  126.          PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
  127.          PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
  128.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  129.          PROPERTY XAlign;
  130.          PROPERTY XStretch;
  131.          PROPERTY YAlign;
  132.          PROPERTY YStretch;
  133.       PUBLISHED
  134.          PROPERTY Align;
  135.          PROPERTY AutoSize:BOOLEAN read FAutoSize write FAutoSize;
  136.          PROPERTY Center:BOOLEAN read FCenter write SetCenter;
  137.          PROPERTY DragCursor;
  138.          PROPERTY DragMode;
  139.          PROPERTY Enabled;
  140.          PROPERTY ParentShowHint;
  141.          PROPERTY Picture:TBitmap read GetBitmap write SetBitmap;
  142.          {Rene}
  143.          PROPERTY PopupMenu;
  144.          PROPERTY ShowHint;
  145.          PROPERTY Stretch:BOOLEAN read FStretch write SetStretch;
  146.          PROPERTY Visible;
  147.          PROPERTY ZOrder;
  148.  
  149.          PROPERTY OnCanDrag;
  150.          {Rene}
  151.          PROPERTY OnDblClick;
  152.          PROPERTY OnDragDrop;
  153.          PROPERTY OnDragOver;
  154.          PROPERTY OnEndDrag;
  155.          PROPERTY OnMouseClick;
  156.          PROPERTY OnMouseDblClick;
  157.          PROPERTY OnMouseDown;
  158.          PROPERTY OnMouseMove;
  159.          PROPERTY OnMouseUp;
  160.          PROPERTY OnSetupShow;
  161.          PROPERTY OnStartDrag;
  162.     END;
  163.  
  164.  
  165.     {$M+}
  166.     TBevelShape=(bsBottomLine,bsBox,bsFrame,bsLeftLine,bsRightLine,bsTopLine,
  167.       bsBorder);
  168.  
  169.     TBevelStyle=(bsLowered,bsRaised);
  170.     {$M-}
  171.  
  172.     TBevel=CLASS(TControl)
  173.       PRIVATE
  174.          FShape:TBevelShape;
  175.          FStyle:TBevelStyle;
  176.          PROCEDURE SetShape(NewShape:TBevelShape);
  177.          PROCEDURE SetStyle(NewStyle:TBevelStyle);
  178.       PROTECTED
  179.          PROCEDURE SetupComponent;OVERRIDE;
  180.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  181.       PUBLIC
  182.          PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
  183.          PROPERTY XAlign;
  184.          PROPERTY XStretch;
  185.          PROPERTY YAlign;
  186.          PROPERTY YStretch;
  187.       PUBLISHED
  188.          PROPERTY Align;
  189.          PROPERTY ParentShowHint;
  190.          {Rene}
  191.          PROPERTY PopupMenu;
  192.          PROPERTY Shape:TBevelShape read FShape write SetShape;
  193.          PROPERTY ShowHint;
  194.          PROPERTY Style:TBevelStyle read FStyle write SetStyle;
  195.          PROPERTY Visible;
  196.          PROPERTY ZOrder;
  197.  
  198.          PROPERTY OnCommand;
  199.          PROPERTY OnResize;
  200.          PROPERTY OnSetupShow;
  201.     END;
  202.  
  203.  
  204.     {$M+}
  205.     TPanelBevel=(bvRaised,bvLowered,bvNone);
  206.     {$M-}
  207.  
  208.     TPanel=CLASS(TControl)
  209.       PRIVATE
  210.          FBevelInner:TPanelBevel;
  211.          FBevelOuter:TPanelBevel;
  212.          FBevelWidth:LONGINT;
  213.          FBorderStyle:TBorderStyle;
  214.          FBorderWidth:LONGINT;
  215.          FAlignment:TAlignment;
  216.          FInterior:TRect;
  217.          FOnClick:TNotifyEvent;
  218.          PROCEDURE CMTextChanged(VAR Msg:TMessage); message CM_TEXTCHANGED;
  219.          PROCEDURE SetBevelInner(NewBevel:TPanelBevel);
  220.          PROCEDURE SetBevelOuter(NewBevel:TPanelBevel);
  221.          PROCEDURE SetBevelWidth(NewWidth:LONGINT);
  222.          PROCEDURE SetBorderStyle(NewStyle:TBorderStyle);
  223.          PROCEDURE SetBorderWidth(NewWidth:LONGINT);
  224.          PROCEDURE SetAlignment(ta:TAlignment);
  225.       PROTECTED
  226.          PROCEDURE SetupComponent;OVERRIDE;
  227.          PROCEDURE MouseClick(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  228.          PROCEDURE MouseDown(Button:TMouseButton;ShiftState:TShiftState;X,Y:LONGINT);OVERRIDE;
  229.          PROCEDURE DrawText(CONST rec:TRect);VIRTUAL;
  230.       PUBLIC
  231.          PROCEDURE Redraw(CONST rec:TRect);OVERRIDE;
  232.          PROPERTY XAlign;
  233.          PROPERTY XStretch;
  234.          PROPERTY YAlign;
  235.          PROPERTY YStretch;
  236.       PUBLISHED
  237.          PROPERTY Align;
  238.          PROPERTY Alignment:TAlignment read FAlignment write SetAlignment;
  239.          PROPERTY Color;
  240.          PROPERTY BevelInner:TPanelBevel read FBevelInner write SetBevelInner;
  241.          PROPERTY BevelOuter:TPanelBevel read FBevelOuter write SetBevelOuter;
  242.          PROPERTY BevelWidth:LONGINT read FBevelWidth write SetBevelWidth;
  243.          PROPERTY BorderStyle:TBorderStyle read FBorderStyle write SetBorderStyle;
  244.          PROPERTY BorderWidth:LONGINT read FBorderWidth write SetBorderWidth;
  245.          PROPERTY Caption;
  246.          PROPERTY PenColor;
  247.          PROPERTY DragCursor;
  248.          PROPERTY DragMode;
  249.          PROPERTY Enabled;
  250.          PROPERTY Font;
  251.          PROPERTY ParentColor;
  252.          PROPERTY ParentPenColor;
  253.          PROPERTY ParentFont;
  254.          PROPERTY ParentShowHint;
  255.          {Rene}
  256.          PROPERTY PopupMenu;
  257.          PROPERTY ShowHint;
  258.          PROPERTY TabOrder;
  259.          PROPERTY TabStop;
  260.          PROPERTY Visible;
  261.          PROPERTY ZOrder;
  262.  
  263.          PROPERTY OnCanDrag;
  264.          PROPERTY OnClick:TNotifyEvent read FOnClick write FOnClick;
  265.          PROPERTY OnCommand;
  266.          {Rene}
  267.          PROPERTY OnDblClick;
  268.          PROPERTY OnDragDrop;
  269.          PROPERTY OnDragOver;
  270.          PROPERTY OnEndDrag;
  271.          PROPERTY OnFontChange;
  272.          PROPERTY OnMouseClick;
  273.          PROPERTY OnMouseDblClick;
  274.          PROPERTY OnMouseDown;
  275.          PROPERTY OnMouseMove;
  276.          PROPERTY OnMouseUp;
  277.          PROPERTY OnPaint;
  278.          PROPERTY OnResize;
  279.          PROPERTY OnSetupShow;
  280.          PROPERTY OnStartDrag;
  281.     END;
  282.  
  283.  
  284.     TRadioGroup=CLASS(TGroupBox)
  285.       PRIVATE
  286.          FItems:TStrings;
  287.          FRadios:TList;
  288.          FItemIndex:LONGINT;
  289.          FColumns:LONGINT;
  290.          {Rene}
  291.          //FOnClick:TNotifyEvent;
  292.          PROCEDURE SetItemIndex(Value:LONGINT);
  293.          PROCEDURE SetColumns(Value:LONGINT);
  294.          PROCEDURE SetItems(Value:TStrings);
  295.          PROCEDURE SetRadioCount(Value:LONGINT);
  296.          FUNCTION GetItemsEnabled(Index:LONGINT):BOOLEAN;
  297.          PROCEDURE SetItemsEnabled(Index:LONGINT;Value:BOOLEAN);
  298.          PROCEDURE UpdateRadios;
  299.          PROCEDURE ArrangeRadios;
  300.          PROCEDURE EvItemsChange(Sender:TObject);
  301.          PROCEDURE EvRadioClick(Sender:TObject);
  302.       PROTECTED
  303.          PROCEDURE SetupComponent;OVERRIDE;
  304.          PROCEDURE SetupShow;OVERRIDE;
  305.          PROCEDURE Resize;OVERRIDE;
  306.          PROCEDURE FontChange;OVERRIDE;
  307.          PROCEDURE Click;VIRTUAL;
  308.          PROCEDURE ItemIndexChange;VIRTUAL;
  309.       PUBLIC
  310.          DESTRUCTOR Destroy;OVERRIDE;
  311.          PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
  312.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  313.          PROPERTY ItemsEnabled[Index:LONGINT]:BOOLEAN read GetItemsEnabled write SetItemsEnabled;
  314.          PROPERTY XAlign;
  315.          PROPERTY XStretch;
  316.          PROPERTY YAlign;
  317.          PROPERTY YStretch;
  318.       PUBLISHED
  319.          PROPERTY Align;
  320.          PROPERTY Color;
  321.          PROPERTY Caption;
  322.          PROPERTY PenColor;
  323.          PROPERTY Columns:LONGINT read FColumns write SetColumns;
  324.          PROPERTY DragCursor;
  325.          PROPERTY DragMode;
  326.          PROPERTY Enabled;
  327.          PROPERTY Font;
  328.          PROPERTY ItemIndex:LONGINT read FItemIndex write SetItemIndex;
  329.          PROPERTY Items:TStrings read FItems write SetItems;
  330.          PROPERTY ParentColor;
  331.          PROPERTY ParentPenColor;
  332.          PROPERTY ParentFont;
  333.          PROPERTY ParentShowHint;
  334.          PROPERTY ShowHint;
  335.          PROPERTY TabOrder;
  336.          PROPERTY TabStop;
  337.          PROPERTY Visible;
  338.          PROPERTY ZOrder;
  339.  
  340.          PROPERTY OnCanDrag;
  341.          {Rene}
  342.          //PROPERTY OnClick:TNotifyEvent read FOnClick write FOnClick;
  343.          PROPERTY OnDragDrop;
  344.          PROPERTY OnDragOver;
  345.          PROPERTY OnEndDrag;
  346.          PROPERTY OnEnter;
  347.          PROPERTY OnExit;
  348.          PROPERTY OnFontChange;
  349.          PROPERTY OnSetupShow;
  350.          PROPERTY OnStartDrag;
  351.     END;
  352.  
  353.  
  354.  
  355. FUNCTION InsertShape(Parent:TControl;Left,Bottom,Width,Height:LONGINT):TShape;
  356. FUNCTION InsertImage(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  357.            BitmapId:LONGWORD):TImage;
  358. FUNCTION InsertBevel(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  359.            Shape:TBevelShape;Style:TBevelStyle):TBevel;
  360. FUNCTION InsertPanel(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  361.            BevelInner:TPanelBevel;BevelOuter:TPanelBevel;BevelWidth:LONGINT;
  362.            Caption:STRING):TPanel;
  363. FUNCTION InsertRadioGroup(Parent:TControl;Left,Bottom,Width,Height:LONGINT;
  364.            Caption:STRING):TRadioGroup;
  365.  
  366.  
  367. IMPLEMENTATION
  368.  
  369.