home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sibylft1.zip / DOC.DAT / DOC / SPCC / FILECTRL.PAS < prev    next >
Pascal/Delphi Source File  |  1997-04-07  |  12KB  |  357 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 FileCtrl;
  11.  
  12. INTERFACE
  13.  
  14. USES SysUtils,Classes,Forms,StdCtrls;
  15.  
  16.  
  17. TYPE
  18.     TDirectoryListBox=CLASS;
  19.     TDriveComboBox=CLASS;
  20.     TFilterComboBox=CLASS;
  21.  
  22.  
  23.     {ftVolumnID has no effect, but exists for compatibility of TFileAttr}
  24.     TFileAttr=(ftReadOnly,ftHidden,ftSystem,ftVolumeID,ftDirectory,ftArchive,
  25.          ftNormal);
  26.     TFileType=SET OF TFileAttr;
  27.  
  28.  
  29.     TFileListBox=CLASS(TListBox)
  30.       PRIVATE
  31.          FMask:STRING;
  32.          FDirectory:STRING;
  33.          FFileType:TFileType;
  34.          FFileEdit:TEdit;
  35.          FDirList:TDirectoryListBox;
  36.          FFilterCombo:TFilterComboBox;
  37.          FOnChange:TNotifyEvent;
  38.          FUNCTION GetDrive:CHAR;
  39.          PROCEDURE SetDrive(NewDrive:CHAR);
  40.          PROCEDURE SetDirectory(NewDir:STRING);
  41.          PROCEDURE SetFileName(NewFile:STRING);
  42.          FUNCTION GetFileName:STRING;
  43.          PROCEDURE SetMask(NewMask:STRING);
  44.          PROCEDURE SetFileType(Attr:TFileType);
  45.          PROCEDURE SetFileEdit(NewEdit:TEdit);
  46.          PROCEDURE BuildList;
  47.       PROTECTED
  48.          PROCEDURE SetupComponent;OVERRIDE;
  49.          PROCEDURE Notification(AComponent:TComponent;Operation:TOperation);OVERRIDE;
  50.          PROCEDURE ItemFocus(Index:LONGINT);OVERRIDE;
  51.          PROCEDURE Change;VIRTUAL;
  52.          PROPERTY Duplicates;
  53.          PROPERTY Items;
  54.          PROPERTY Sorted;
  55.          PROPERTY OnItemFocus;
  56.       PUBLIC
  57.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  58.          PROPERTY FileName:STRING read GetFileName write SetFileName;
  59.          PROPERTY Directory:STRING read FDirectory write SetDirectory;
  60.          PROPERTY Drive:CHAR read GetDrive write SetDrive;
  61.          PROPERTY XAlign;
  62.          PROPERTY XStretch;
  63.          PROPERTY YAlign;
  64.          PROPERTY YStretch;
  65.          PROPERTY OnItemSelect;
  66.       PUBLISHED
  67.          PROPERTY Align;
  68.          PROPERTY Color;
  69.          PROPERTY PenColor;
  70.          PROPERTY DragCursor;
  71.          PROPERTY DragMode;
  72.          PROPERTY Enabled;
  73.          PROPERTY ExtendedSelect;
  74.          PROPERTY FileEdit:TEdit read FFileEdit write SetFileEdit;
  75.          PROPERTY FileType:TFileType read FFileType write SetFileType;
  76.          PROPERTY Font;
  77.          PROPERTY HorzScroll;
  78.          PROPERTY IntegralHeight;
  79.          PROPERTY ItemHeight;
  80.          PROPERTY Mask:STRING read FMask write SetMask;
  81.          PROPERTY MultiSelect;
  82.          PROPERTY ParentColor;
  83.          PROPERTY ParentPenColor;
  84.          PROPERTY ParentFont;
  85.          PROPERTY ParentShowHint;
  86.          PROPERTY ShowDragRects;
  87.          PROPERTY ShowHint;
  88.          PROPERTY Style;
  89.          PROPERTY TabOrder;
  90.          PROPERTY TabStop;
  91.          PROPERTY Visible;
  92.          PROPERTY ZOrder;
  93.  
  94.          PROPERTY OnCanDrag;
  95.          PROPERTY OnChange:TNotifyEvent read FOnChange write FOnChange;
  96.          PROPERTY OnDragDrop;
  97.          PROPERTY OnDragOver;
  98.          PROPERTY OnDrawItem;
  99.          PROPERTY OnEndDrag;
  100.          PROPERTY OnEnter;
  101.          PROPERTY OnExit;
  102.          PROPERTY OnFontChange;
  103.          PROPERTY OnKeyPress;
  104.          PROPERTY OnMeasureItem;
  105.          PROPERTY OnMouseClick;
  106.          PROPERTY OnMouseDblClick;
  107.          PROPERTY OnMouseDown;
  108.          PROPERTY OnMouseMove;
  109.          PROPERTY OnMouseUp;
  110.          PROPERTY OnScan;
  111.          PROPERTY OnSetupShow;
  112.          PROPERTY OnStartDrag;
  113.     END;
  114.  
  115.  
  116.     TDirectoryListBox=CLASS(TListBox)
  117.       PRIVATE
  118.          FDirectory:STRING;
  119.          FDirLabel:TLabel;
  120.          FFileList:TFileListBox;
  121.          FDriveCombo:TDriveComboBox;
  122.          FOnChange:TNotifyEvent;
  123.          PROCEDURE SetDirectory(NewDir:STRING);
  124.          FUNCTION GetDrive:CHAR;
  125.          PROCEDURE SetDrive(NewDrive:CHAR);
  126.          PROCEDURE SetDirLabel(ALabel:TLabel);
  127.          PROCEDURE SetFileListBox(AFileList:TFileListBox);
  128.          PROCEDURE BuildList;
  129.       PROTECTED
  130.          PROCEDURE SetupComponent;OVERRIDE;
  131.          PROCEDURE Notification(AComponent:TComponent;Operation:TOperation);OVERRIDE;
  132.          PROCEDURE ItemSelect(Index:LONGINT);OVERRIDE;
  133.          PROCEDURE Change;VIRTUAL;
  134.          PROPERTY Duplicates;
  135.          PROPERTY ExtendedSelect;
  136.          PROPERTY ItemHeight;
  137.          PROPERTY Items;
  138.          PROPERTY MultiSelect;
  139.          PROPERTY Sorted;
  140.          PROPERTY Style;
  141.          PROPERTY OnDrawItem;
  142.          PROPERTY OnItemFocus;
  143.          PROPERTY OnItemSelect;
  144.          PROPERTY OnMeasureItem;
  145.       PUBLIC
  146.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  147.          PROPERTY Directory:STRING read FDirectory write SetDirectory;
  148.          PROPERTY Drive:CHAR read GetDrive write SetDrive;
  149.          PROPERTY XAlign;
  150.          PROPERTY XStretch;
  151.          PROPERTY YAlign;
  152.          PROPERTY YStretch;
  153.       PUBLISHED
  154.          PROPERTY Align;
  155.          PROPERTY Color;
  156.          PROPERTY PenColor;
  157.          PROPERTY DirLabel:TLabel read FDirLabel write SetDirLabel;
  158.          PROPERTY DragCursor;
  159.          PROPERTY DragMode;
  160.          PROPERTY Enabled;
  161.          PROPERTY FileList:TFileListBox read FFileList write SetFileListBox;
  162.          PROPERTY Font;
  163.          PROPERTY HorzScroll;
  164.          PROPERTY IntegralHeight;
  165.          PROPERTY ParentColor;
  166.          PROPERTY ParentPenColor;
  167.          PROPERTY ParentFont;
  168.          PROPERTY ParentShowHint;
  169.          PROPERTY ShowDragRects;
  170.          PROPERTY ShowHint;
  171.          PROPERTY TabOrder;
  172.          PROPERTY TabStop;
  173.          PROPERTY Visible;
  174.          PROPERTY ZOrder;
  175.  
  176.          PROPERTY OnCanDrag;
  177.          PROPERTY OnChange:TNotifyEvent read FOnChange write FOnChange;
  178.          PROPERTY OnDragDrop;
  179.          PROPERTY OnDragOver;
  180.          PROPERTY OnEndDrag;
  181.          PROPERTY OnEnter;
  182.          PROPERTY OnExit;
  183.          PROPERTY OnFontChange;
  184.          PROPERTY OnKeyPress;
  185.          PROPERTY OnMouseClick;
  186.          PROPERTY OnMouseDblClick;
  187.          PROPERTY OnMouseDown;
  188.          PROPERTY OnMouseMove;
  189.          PROPERTY OnMouseUp;
  190.          PROPERTY OnScan;
  191.          PROPERTY OnSetupShow;
  192.          PROPERTY OnStartDrag;
  193.     END;
  194.  
  195.  
  196.     TDriveComboBox=CLASS(TComboBox)
  197.       PRIVATE
  198.          FDrive:CHAR;
  199.          FDirList:TDirectoryListBox;
  200.          FOnChange:TNotifyEvent;
  201.          PROCEDURE SetDrive(NewDrive:CHAR);
  202.          PROCEDURE SetDirListBox(ADirList:TDirectoryListBox);
  203.       PROTECTED
  204.          PROCEDURE SetupComponent;OVERRIDE;
  205.          PROCEDURE Notification(AComponent:TComponent;Operation:TOperation);OVERRIDE;
  206.          PROCEDURE ItemSelect(Index:LONGINT);OVERRIDE;
  207.          PROCEDURE Change;VIRTUAL;
  208.          PROPERTY BorderStyle;
  209.          PROPERTY Duplicates;
  210.          PROPERTY Items;
  211.          PROPERTY MaxLength;
  212.          PROPERTY SelLength;
  213.          PROPERTY SelStart;
  214.          PROPERTY SelText;
  215.          PROPERTY Sorted;
  216.          PROPERTY Style;
  217.          PROPERTY TextExtension;
  218.          PROPERTY OnItemFocus;
  219.          PROPERTY OnItemSelect;
  220.       PUBLIC
  221.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  222.          PROPERTY Drive:CHAR read FDrive write SetDrive;
  223.          PROPERTY Text;
  224.          PROPERTY XAlign;
  225.          PROPERTY XStretch;
  226.          PROPERTY YAlign;
  227.          PROPERTY YStretch;
  228.       PUBLISHED
  229.          PROPERTY Align;
  230.          PROPERTY Color;
  231.          PROPERTY PenColor;
  232.          PROPERTY DirList:TDirectoryListBox read FDirList write SetDirListBox;
  233.          PROPERTY DragCursor;
  234.          PROPERTY DragMode;
  235.          PROPERTY DropDownCount;
  236.          PROPERTY Enabled;
  237.          PROPERTY Font;
  238.          PROPERTY ParentColor;
  239.          PROPERTY ParentPenColor;
  240.          PROPERTY ParentFont;
  241.          PROPERTY ParentShowHint;
  242.          PROPERTY ShowHint;
  243.          PROPERTY TabOrder;
  244.          PROPERTY TabStop;
  245.          PROPERTY Visible;
  246.          PROPERTY ZOrder;
  247.  
  248.          PROPERTY OnCanDrag;
  249.          PROPERTY OnChange:TNotifyEvent read FOnChange write FOnChange;
  250.          PROPERTY OnDragDrop;
  251.          PROPERTY OnDragOver;
  252.          PROPERTY OnDropDown;
  253.          PROPERTY OnEndDrag;
  254.          PROPERTY OnEnter;
  255.          PROPERTY OnExit;
  256.          PROPERTY OnFontChange;
  257.          PROPERTY OnKeyPress;
  258.          PROPERTY OnMouseClick;
  259.          PROPERTY OnMouseDblClick;
  260.          PROPERTY OnMouseDown;
  261.          PROPERTY OnMouseMove;
  262.          PROPERTY OnMouseUp;
  263.          PROPERTY OnScan;
  264.          PROPERTY OnSetupShow;
  265.          PROPERTY OnStartDrag;
  266.     END;
  267.  
  268.  
  269.     TFilterComboBox=CLASS(TComboBox)
  270.       PRIVATE
  271.          FFilter:STRING;
  272.          FFileList:TFileListBox;
  273.          FMaskList:TStringList;
  274.          FOnChange:TNotifyEvent;
  275.          PROCEDURE SetFilter(NewFilter:STRING);
  276.          PROCEDURE SetFileListBox(AFileList:TFileListBox);
  277.          FUNCTION GetMask:STRING;
  278.          PROCEDURE BuildList;
  279.       PROTECTED
  280.          PROCEDURE SetupComponent;OVERRIDE;
  281.          PROCEDURE Notification(AComponent:TComponent;Operation:TOperation);OVERRIDE;
  282.          PROCEDURE SetupShow;OVERRIDE;
  283.          PROCEDURE ItemSelect(Index:LONGINT);OVERRIDE;
  284.          PROCEDURE Change;VIRTUAL;
  285.          PROPERTY BorderStyle;
  286.          PROPERTY Duplicates;
  287.          PROPERTY Items;
  288.          PROPERTY Mask:STRING read GetMask;
  289.          PROPERTY MaxLength;
  290.          PROPERTY SelLength;
  291.          PROPERTY SelStart;
  292.          PROPERTY SelText;
  293.          PROPERTY Sorted;
  294.          PROPERTY Style;
  295.          PROPERTY TextExtension;
  296.          PROPERTY OnItemFocus;
  297.          PROPERTY OnItemSelect;
  298.       PUBLIC
  299.          DESTRUCTOR Destroy;OVERRIDE;
  300.          FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
  301.          PROPERTY Text;
  302.          PROPERTY XAlign;
  303.          PROPERTY XStretch;
  304.          PROPERTY YAlign;
  305.          PROPERTY YStretch;
  306.       PUBLISHED
  307.          PROPERTY Align;
  308.          PROPERTY Color;
  309.          PROPERTY PenColor;
  310.          PROPERTY DragCursor;
  311.          PROPERTY DragMode;
  312.          PROPERTY DropDownCount;
  313.          PROPERTY Enabled;
  314.          PROPERTY FileList:TFileListBox read FFileList write SetFileListBox;
  315.          PROPERTY Filter:STRING read FFilter write SetFilter;
  316.          PROPERTY Font;
  317.          PROPERTY ParentColor;
  318.          PROPERTY ParentPenColor;
  319.          PROPERTY ParentFont;
  320.          PROPERTY ParentShowHint;
  321.          PROPERTY ShowHint;
  322.          PROPERTY TabOrder;
  323.          PROPERTY TabStop;
  324.          PROPERTY Visible;
  325.          PROPERTY ZOrder;
  326.  
  327.          PROPERTY OnCanDrag;
  328.          PROPERTY OnChange:TNotifyEvent read FOnChange write FOnChange;
  329.          PROPERTY OnDragDrop;
  330.          PROPERTY OnDragOver;
  331.          PROPERTY OnDropDown;
  332.          PROPERTY OnEndDrag;
  333.          PROPERTY OnEnter;
  334.          PROPERTY OnExit;
  335.          PROPERTY OnFontChange;
  336.          PROPERTY OnKeyPress;
  337.          PROPERTY OnMouseClick;
  338.          PROPERTY OnMouseDblClick;
  339.          PROPERTY OnMouseDown;
  340.          PROPERTY OnMouseMove;
  341.          PROPERTY OnMouseUp;
  342.          PROPERTY OnScan;
  343.          PROPERTY OnSetupShow;
  344.          PROPERTY OnStartDrag;
  345.     END;
  346.  
  347.  
  348.  
  349. FUNCTION InsertFileListBox(Parent:TControl;Left,Bottom,Width,Height:LONGINT):TFileListBox;
  350. FUNCTION InsertDirectoryListBox(Parent:TControl;Left,Bottom,Width,Height:LONGINT):TDirectoryListBox;
  351. FUNCTION InsertDriveComboBox(Parent:TControl;Left,Bottom,Width,Height:LONGINT):TDriveComboBox;
  352. FUNCTION InsertFilterComboBox(Parent:TControl;Left,Bottom,Width,Height:LONGINT):TFilterComboBox;
  353.  
  354.  
  355. IMPLEMENTATION
  356.  
  357.