home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
sibylft1.zip
/
DOC.DAT
/
DOC
/
SPCC
/
DBCTRLS.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1997-04-07
|
18KB
|
441 lines
{╔══════════════════════════════════════════════════════════════════════════╗
║ ║
║ Sibyl Portable Component Classes ║
║ ║
║ Copyright (c) 1995,97 SpeedSoft Germany, All rights reserved. ║
║ ║
╚══════════════════════════════════════════════════════════════════════════╝}
UNIT DBCtrls;
INTERFACE
{$r DBCtrls}
{$i StdBmpId.Inc}
USES SysUtils,Messages,Classes,Forms,Grids,DbBase,Buttons,StdCtrls,Dialogs,ExtCtrls;
TYPE
{$M+}
TDBGridOptions = SET OF (dgBorder,dgRowResize,dgColumnResize,dgEditing,dgAlwaysShowEditor,
dgShowSelection,dgAlwaysShowSelection,dgConfirmDelete,
dgCancelOnExit,dgIndicator,dgTitles,{Rene}dgMouseSelect);
{$M-}
TDBGrid=CLASS;
TDBGridColumn=CLASS;
TDBGridColumns=CLASS;
TDBColumnTitle=CLASS
PRIVATE
FCaption:^STRING;
FAlignment:TAlignment;
FFont:TFont;
FColor:TColor;
FGrid:TDBGrid;
FColumn:TDBGridColumn;
FPenColor:TColor;
PRIVATE
FUNCTION GetFont:TFont;
PROCEDURE SetFont(NewFont:TFont);
PROCEDURE SetColor(NewColor:TColor);
PROCEDURE SetPenColor(NewColor:TColor);
PROCEDURE SetAlignment(NewValue:TAlignment);
FUNCTION GetCaption:STRING;
PROCEDURE SetCaption(CONST NewValue:STRING);
PUBLIC
CONSTRUCTOR Create(DBGrid:TDBGrid;Column:TDBGridColumn);
DESTRUCTOR Destroy;OVERRIDE;
PUBLIC
PROPERTY Font:TFont read GetFont write SetFont;
PROPERTY Color:TColor read FColor write SetColor;
PROPERTY PenColor:TColor read FPenColor write SetPenColor;
PROPERTY Alignment:TAlignment read FAlignment write SetAlignment;
PROPERTY Caption:STRING read GetCaption write SetCaption;
END;
TDBGridColumn=CLASS
PRIVATE
FFieldName:^STRING;
FTitle:TDBColumnTitle;
FColor:TColor;
FGrid:TDBGrid;
FColumns:TDBGridColumns;
FWidth:LONGINT;
FAlignment:TAlignment;
FReadOnly:BOOLEAN;
FFont:TFont;
FPenColor:TColor;
PRIVATE
FUNCTION GetFieldName:STRING;
PROCEDURE SetFieldName(CONST NewValue:STRING);
PROCEDURE SetTitle(NewTitle:TDBColumnTitle);
PROCEDURE SetColor(NewColor:TColor);
PROCEDURE SetPenColor(NewColor:TColor);
FUNCTION GetWidth:LONGINT;
PROCEDURE SetWidth(NewWidth:LONGINT);
PROCEDURE SetAlignment(NewValue:TAlignment);
FUNCTION GetFont:TFont;
PROCEDURE SetFont(NewFont:TFont);
PUBLIC
CONSTRUCTOR Create(DBGrid:TDBGrid;Columns:TDBGridColumns);
DESTRUCTOR Destroy;OVERRIDE;
PUBLIC
PROPERTY FieldName:STRING read GetFieldName write SetFieldName;
PROPERTY Title:TDBColumnTitle read FTitle write SetTitle;
PROPERTY Color:TColor read FColor write SetColor;
PROPERTY PenColor:TColor read FPenColor write SetPenColor;
PROPERTY Width:LONGINT read GetWidth write SetWidth;
PROPERTY Alignment:TAlignment read FAlignment write SetAlignment;
PROPERTY ReadOnly:BOOLEAN read FReadOnly write FReadOnly;
PROPERTY Font:TFont read GetFont write SetFont;
END;
TDBGridColumns=CLASS(TList)
PRIVATE
FGrid:TDBGrid;
FUpdateLocked:BOOLEAN;
PRIVATE
FUNCTION GetColumn(Index:LONGINT):TDBGridColumn;
PROCEDURE SetColumn(Index:LONGINT;Column:TDBGridColumn);
PUBLIC
CONSTRUCTOR Create(DBGrid:TDBGrid);
DESTRUCTOR Destroy;OVERRIDE;
FUNCTION Add:TDBGridColumn;
PROCEDURE Delete(Index:LONGINT);
PROCEDURE FreeItem(Item:POINTER);OVERRIDE;
PROCEDURE BeginUpdate;
PROCEDURE EndUpdate;
PUBLIC
PROPERTY Items[Index:LONGINT]:TDBGridColumn read GetColumn write SetColumn;default;
PROPERTY Grid:TDBGrid read FGrid;
END;
TDBGrid=CLASS(TStringGrid)
PRIVATE
FDataLink:TTableDataLink;
FGridOptions:TDBGridOptions;
FColumns:TDBGridColumns;
PROCEDURE SetDataSource(NewValue:TDataSource);
FUNCTION GetDataSource:TDataSource;
PROCEDURE SetGridOptions(NewValue:TDBGridOptions);
PROCEDURE SetColumns(NewColumns:TDBGridColumns);
PROTECTED
PROCEDURE DataChange(Sender:TObject;Event:TDataChange);VIRTUAL;
PROCEDURE SetFont(NewFont:TFont);OVERRIDE;
PROCEDURE Scroll(ScrollBar:TScrollBar;ScrollCode:TScrollCode;VAR ScrollPos:LONGINT);OVERRIDE;
PROCEDURE SetupComponent;OVERRIDE;
FUNCTION GetCell(Col,Row:LONGINT):STRING;OVERRIDE;
PROCEDURE SetCell(Col,Row:LONGINT;CONST NewContent:STRING);OVERRIDE;
{Rene}
FUNCTION SelectCell(Col,Row:LONGINT):BOOLEAN;OVERRIDE;
PROCEDURE SetupCellDrawing(Col,Row:LONGINT;AState:TGridDrawState;
VAR Alignment:TAlignment;VAR DrawFont:TFont);OVERRIDE;
PROCEDURE SetupCellColors(Col,Row:LongInt;AState:TGridDrawState;VAR Background,ForeGround:TColor);OVERRIDE;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
PROPERTY FixedCols;
PROPERTY FixedRows;
PROPERTY ColCount;
PROPERTY RowCount;
PROPERTY Options;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
PROCEDURE DrawCell(Col,Row:LONGINT;rec:TRect;AState:TGridDrawState);OVERRIDE;
PUBLISHED
PROPERTY DataSource:TDataSource read GetDataSource write SetDataSource;
PROPERTY GridOptions:TDBGridOptions read FGridOptions write SetGridOptions;
PROPERTY Columns:TDBGridColumns read FColumns write SetColumns;
END;
TGetDataSourceProc=FUNCTION:TDataSource OF OBJECT;
TDataFieldStringList=CLASS(TStringSelectList)
PRIVATE
FDataLink:TFieldDataLink;
FGetDataSourceProc:TGetDataSourceProc;
PUBLIC
FUNCTION GetItems:TStringList;OVERRIDE;
PROCEDURE SetStringItem(NewValue:STRING);OVERRIDE;
PUBLIC
PROPERTY GetDataSourceProc:TGetDataSourceProc read FGetDataSourceProc write FGetDataSourceProc;
END;
TDBEdit=CLASS(TEdit)
PRIVATE
FDataLink:TFieldDataLink;
FDataFields:TDataFieldStringList;
PROCEDURE SetDataSource(NewValue:TDataSource);
FUNCTION GetDataSource:TDataSource;
PROCEDURE SetDataField(NewValue:STRING);
FUNCTION GetDataField:STRING;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE SetupShow;OVERRIDE;
PROCEDURE DataChange(Sender:TObject;Event:TDataChange);VIRTUAL;
PROCEDURE KillFocus;OVERRIDE;
PROCEDURE ScanEvent(VAR Msg:TWMChar;VAR KeyCode:TKeyCode;RepeatCount:BYTE);OVERRIDE;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
PROPERTY DataField:STRING read GetDataField write SetDataField;
PUBLISHED
PROPERTY DataSource:TDataSource read GetDataSource write SetDataSource;
PROPERTY DataFields:TDataFieldStringList read FDataFields;
END;
TDBText=CLASS(TLabel)
PRIVATE
FDataLink:TFieldDataLink;
FDataFields:TDataFieldStringList;
PROCEDURE SetDataSource(NewValue:TDataSource);
FUNCTION GetDataSource:TDataSource;
PROCEDURE SetDataField(NewValue:STRING);
FUNCTION GetDataField:STRING;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE DataChange(Sender:TObject;Event:TDataChange);VIRTUAL;
PROCEDURE SetupShow;OVERRIDE;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
PROPERTY DataField:STRING read GetDataField write SetDataField;
PUBLISHED
PROPERTY DataSource:TDataSource read GetDataSource write SetDataSource;
PROPERTY DataFields:TDataFieldStringList read FDataFields;
END;
TDBCheckBox=CLASS(TCheckBox)
PRIVATE
FDataLink:TFieldDataLink;
FValueChecked:PString;
FValueUnchecked:PString;
FDataFields:TDataFieldStringList;
PROCEDURE SetDataSource(NewValue:TDataSource);
FUNCTION GetDataSource:TDataSource;
PROCEDURE SetDataField(NewValue:STRING);
FUNCTION GetDataField:STRING;
PROCEDURE SetValueChecked(NewValue:STRING);
FUNCTION GetValueChecked:STRING;
PROCEDURE SetValueUnchecked(NewValue:STRING);
FUNCTION GetValueUnchecked:STRING;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE DataChange(Sender:TObject;Event:TDataChange);VIRTUAL;
PROCEDURE SetupShow;OVERRIDE;
PROCEDURE Click;OVERRIDE;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
PROPERTY DataField:STRING read GetDataField write SetDataField;
PUBLISHED
PROPERTY DataSource:TDataSource read GetDataSource write SetDataSource;
PROPERTY ValueChecked:STRING read GetValueChecked write SetValueChecked;
PROPERTY ValueUnchecked:STRING read GetValueUnchecked write SetValueUnchecked;
PROPERTY DataFields:TDataFieldStringList read FDataFields;
END;
TDBImage=CLASS(TImage)
PRIVATE
FDataLink:TFieldDataLink;
FDataFields:TDataFieldStringList;
PROCEDURE SetDataSource(NewValue:TDataSource);
FUNCTION GetDataSource:TDataSource;
PROCEDURE SetDataField(NewValue:STRING);
FUNCTION GetDataField:STRING;
PROPERTY Picture;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE DataChange(Sender:TObject;Event:TDataChange);VIRTUAL;
PROCEDURE SetupShow;OVERRIDE;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
PROPERTY DataField:STRING read GetDataField write SetDataField;
PUBLISHED
PROPERTY DataSource:TDataSource read GetDataSource write SetDataSource;
PROPERTY DataFields:TDataFieldStringList read FDataFields;
END;
TDBMemo=CLASS(TMemo)
PRIVATE
FDataLink:TFieldDataLink;
FDataFields:TDataFieldStringList;
PROCEDURE SetDataSource(NewValue:TDataSource);
FUNCTION GetDataSource:TDataSource;
PROCEDURE SetDataField(NewValue:STRING);
FUNCTION GetDataField:STRING;
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE DataChange(Sender:TObject;Event:TDataChange);VIRTUAL;
PROCEDURE SetupShow;OVERRIDE;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
PROPERTY DataField:STRING read GetDataField write SetDataField;
PUBLISHED
PROPERTY DataSource:TDataSource read GetDataSource write SetDataSource;
PROPERTY DataFields:TDataFieldStringList read FDataFields;
END;
TDBListBox=CLASS(TListBox)
PRIVATE
FDataLink:TFieldDataLink;
FDataFields:TDataFieldStringList;
FDBStrings:TStrings;
PRIVATE
PROCEDURE SetDataSource(NewValue:TDataSource);
FUNCTION GetDataSource:TDataSource;
PROCEDURE SetDataField(NewValue:STRING);
FUNCTION GetDataField:STRING;
PROCEDURE SetItems(NewValue:TStrings);
PROTECTED
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE DataChange(Sender:TObject;Event:TDataChange);VIRTUAL;
PROCEDURE SetupShow;OVERRIDE;
PROCEDURE ItemFocus(Index:LONGINT);OVERRIDE;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
PUBLIC
PROPERTY DataField:STRING read GetDataField write SetDataField;
PROPERTY Items:TStrings read FDBStrings write SetItems;
PUBLISHED
PROPERTY DataSource:TDataSource read GetDataSource write SetDataSource;
PROPERTY DataFields:TDataFieldStringList read FDataFields;
END;
TDBComboBox=CLASS(TComboBox)
PRIVATE
FDataLink:TFieldDataLink;
FDataFields:TDataFieldStringList;
FLock:BOOLEAN;
PRIVATE
PROCEDURE SetDataSource(NewValue:TDataSource);
FUNCTION GetDataSource:TDataSource;
PROCEDURE SetDataField(NewValue:STRING);
FUNCTION GetDataField:STRING;
PROTECTED
PROCEDURE EditChange;OVERRIDE;
PROCEDURE SetupShow;OVERRIDE;
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE DataChange(Sender:TObject;Event:TDataChange);VIRTUAL;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
PUBLIC
PROPERTY DataField:STRING read GetDataField write SetDataField;
PUBLISHED
PROPERTY DataSource:TDataSource read GetDataSource write SetDataSource;
PROPERTY DataFields:TDataFieldStringList read FDataFields;
END;
TDBRadioGroup=CLASS(TRadioGroup)
PRIVATE
FDataLink:TFieldDataLink;
FDataFields:TDataFieldStringList;
FValues:TStrings;
FLock:BOOLEAN;
PRIVATE
PROCEDURE SetDataSource(NewValue:TDataSource);
FUNCTION GetDataSource:TDataSource;
PROCEDURE SetDataField(NewValue:STRING);
FUNCTION GetDataField:STRING;
FUNCTION GetValue:STRING;
PROCEDURE SetValue(CONST NewValue:STRING);
PROCEDURE SetValues(NewValue:TStrings);
PROTECTED
PROCEDURE SetupShow;OVERRIDE;
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE DataChange(Sender:TObject;Event:TDataChange);VIRTUAL;
PROCEDURE ItemIndexChange;OVERRIDE;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
FUNCTION WriteSCUResource(Stream:TResourceStream):BOOLEAN;OVERRIDE;
PROCEDURE ReadSCUResource(CONST ResName:TResourceName;VAR Data;DataLen:LONGINT);OVERRIDE;
PUBLIC
PROPERTY DataField:STRING read GetDataField write SetDataField;
PROPERTY Value:STRING read GetValue write SetValue;
PROPERTY Values:TStrings read FValues write SetValues;
PUBLISHED
PROPERTY DataSource:TDataSource read GetDataSource write SetDataSource;
PROPERTY DataFields:TDataFieldStringList read FDataFields;
END;
{$M+}
TNavigateBtn=(dbFirst, dbPrior, dbNext, dbLast, dbInsert,
dbDelete, dbEdit, dbPost, dbCancel, dbRefresh);
TNavigateBtnSet=SET OF TNavigateBtn;
TNavClick=PROCEDURE(Sender:TObject;Button:TNavigateBtn) OF OBJECT;
{$M-}
TDBNavigator=CLASS(TControl)
PRIVATE
FButtons:ARRAY[TNavigateBtn] OF TBitBtn;
FVisibleButtons:TNavigateBtnSet;
FEnabledButtons:TNavigateBtnSet;
FDataLink:TTableDataLink;
FOnNavClick:TNavClick;
PROCEDURE SetVisibleButtons(NewState:TNavigateBtnSet);
PROCEDURE SetEnabledButtons(NewState:TNavigateBtnSet);
FUNCTION GetButton(Index:TNavigateBtn):TBitBtn;
FUNCTION GetDataSource:TDataSource;
PROCEDURE SetDataSource(NewValue:TDataSource);
PROCEDURE EvButtonClick(Sender:TObject);
PROTECTED
PROCEDURE CommandEvent(VAR Msg:TWMCommand;VAR Command:TCommand);OVERRIDE;
PROCEDURE SetupComponent;OVERRIDE;
PROCEDURE CreateWnd;OVERRIDE;
PROCEDURE RealignControls;OVERRIDE;
PROPERTY Buttons[Index:TNavigateBtn]:TBitBtn read GetButton;
PROPERTY Hint;
PROPERTY Cursor;
PUBLIC
DESTRUCTOR Destroy;OVERRIDE;
PROPERTY XAlign;
PROPERTY XStretch;
PROPERTY YAlign;
PROPERTY YStretch;
PUBLISHED
PROPERTY Align;
PROPERTY DataSource:TDataSource read GetDataSource write SetDataSource;
PROPERTY DragCursor;
PROPERTY DragMode;
PROPERTY Enabled;
PROPERTY EnabledButtons:TNavigateBtnSet read FEnabledButtons write SetEnabledButtons;
PROPERTY ParentShowHint;
PROPERTY ShowHint;
PROPERTY TabOrder;
PROPERTY TabStop;
PROPERTY Visible;
PROPERTY VisibleButtons:TNavigateBtnSet read FVisibleButtons write SetVisibleButtons;
PROPERTY ZOrder;
PROPERTY OnCanDrag;
PROPERTY OnClick:TNavClick read FOnNavClick write FOnNavClick;
PROPERTY OnDragDrop;
PROPERTY OnDragOver;
PROPERTY OnEndDrag;
PROPERTY OnEnter;
PROPERTY OnExit;
PROPERTY OnMouseMove;
PROPERTY OnResize;
PROPERTY OnSetupShow;
PROPERTY OnStartDrag;
END;
IMPLEMENTATION