📄 osgrideditor.pas
字号:
unit osGridEditor;
interface
{$INCLUDE TSCmpVer}
//{$DEFINE rtTest}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, TypInfo, ExtCtrls, Grids_ts, Registry,
ComCtrls, ToolWin, DB, DBTables, ImgList, Menus, TSGrid, TSDBGrid, TSCommon, TsMask,
propertyDescs, TSImageList, Buttons, osColorComboBox, TsDateTimeDef
{$IFNDEF rtTest}
{$IFDEF TSVER_V6}
, Variants, ValEdit, DesignIntf, DesignEditors, VCLEditors, TsImageListEditor
{$ELSE}
, DsgnIntf, TSImagelistEditor
{$ENDIF}
{$ELSE}
{$IFDEF TSVER_V6}, Variants, ValEdit {$ENDIF}
{$ENDIF};
const
SNoMaskDefs = 'Cannot adjust mask properties - please add a TtsMaskDefs component and associate with your grid first!';
MaxComboRows = 50;
TG_REGENTRIES = '\Software\ObjectSight\TopGrid\';
type
TosGridPropertyView = (gpAll, gpFont, gpColor, gpVCL, gpControls, gpBasic, gpHeading, gpDragging, gpBooleans, gpData, gpCustom, gpModified);
TosColPropertyView = (cpAll, cpHeading, cpBasic, cpControls, cpCustom, cpModified);
TosPropertyType = (ptEdit, ptSpin, ptBoolean, ptCombo, ptColor, ptButton);
{$IFNDEF rtTest}
TosGridEditor = class(TComponentEditor)
public
procedure GetDatasourceName(const sValue : String);
procedure GetDateTimeDefName(const sValue : String);
procedure Edit; override;
function GetVerbCount: Integer; override;
function GetVerb(Index: integer): string; override;
procedure ExecuteVerb(Index: integer); override;
procedure ApplyDbColumns;
end;
{$ENDIF}
TosSelectedColumn = class(TObject)
private
FCol : Integer;
FFieldName : String;
FHeading : String;
protected
public
property Col : Integer read FCol write FCol;
property FieldName : String read FFieldName write FFieldName;
property Heading : String read FHeading write FHeading;
end;
TfmOsGridEditor = class(TForm)
sampleGrid: TtsGrid;
tbEditor: TToolBar;
tbSave: TToolButton;
tbDeleteColumn: TToolButton;
Splitter: TSplitter;
pgEditor: TPageControl;
tsAdvanced: TTabSheet;
tsCommon: TTabSheet;
tsColumns: TTabSheet;
pnPropertyEditor: TPanel;
veEditor: TtsGrid;
Panel2: TPanel;
Label2: TLabel;
cbPropertyView: TComboBox;
sbStatus: TStatusBar;
gbProperty: TGroupBox;
Label5: TLabel;
Label6: TLabel;
edPropertyValue: TEdit;
cbBoolean: TComboBox;
cbEnum: TComboBox;
gbColumn: TGroupBox;
gbFields: TGroupBox;
lbFields: TListBox;
Panel1: TPanel;
veColEditor: TtsGrid;
Panel3: TPanel;
Label7: TLabel;
edColHeading: TEdit;
Label8: TLabel;
cbColPropertyView: TComboBox;
pmOptions: TPopupMenu;
ilImages: TImageList;
ilHotImages: TImageList;
ToolButton1: TToolButton;
tbClose: TToolButton;
ToolButton2: TToolButton;
tbAddColumn: TToolButton;
dgFont: TFontDialog;
rgGridMode: TRadioGroup;
gbFont: TGroupBox;
Label1: TLabel;
Label3: TLabel;
Label9: TLabel;
laFontSummary: TLabel;
Label10: TLabel;
laHeadingFontSummary: TLabel;
pmReset: TPopupMenu;
miResetGridProperty: TMenuItem;
miResetAllGridProperties: TMenuItem;
N1: TMenuItem;
miResetColumnProperty: TMenuItem;
miResetAllColumnProperties: TMenuItem;
gbMisc: TGroupBox;
chShowEditor: TCheckBox;
chHeadingOn: TCheckBox;
chShowFocus: TCheckBox;
chRowBarOn: TCheckBox;
chWantTabs: TCheckBox;
laFocusColor: TLabel;
laFocusFontColor: TLabel;
gbLayout: TGroupBox;
udDefaultRowHeight: TUpDown;
udDefaultColWidth: TUpDown;
Label4: TLabel;
cbGridLines: TComboBox;
Label13: TLabel;
cbVertAlignment: TComboBox;
GroupBox1: TGroupBox;
Label11: TLabel;
Label12: TLabel;
cbColSelect: TComboBox;
cbRowSelect: TComboBox;
btAddAllColumns: TButton;
tsCombos: TTabSheet;
cbControlType: TComboBox;
cbButtonType: TComboBox;
Label14: TLabel;
Label15: TLabel;
chColMoving: TCheckBox;
chRowMoving: TCheckBox;
tbReset: TToolButton;
sampleDbGrid: TtsDBGrid;
cbMask: TComboBox;
tbRightJustify: TToolButton;
tbLeftJustify: TToolButton;
tbCenterJustify: TToolButton;
ToolButton7: TToolButton;
tbDefaultJustify: TToolButton;
ToolButton3: TToolButton;
qyTest: TQuery;
DataSource1: TDataSource;
btCustomMasks: TSpeedButton;
btEditCustomColProperties: TSpeedButton;
btCustomGridEdit: TSpeedButton;
btEditMask: TSpeedButton;
gbCombos: TGroupBox;
lbCombos: TListBox;
gdTest: TtsDBGrid;
gbCombo: TGroupBox;
AddCombo1: TMenuItem;
RemoveCombo1: TMenuItem;
pgCombo: TPageControl;
tsComboData: TTabSheet;
tsGridProperties: TTabSheet;
tsComboColumns: TTabSheet;
gdComboData: TtsGrid;
veComboProperties: TtsGrid;
pnComboColumnUd: TPanel;
udComboFields: TUpDown;
tbSaveFile: TToolButton;
tbOpenFile: TToolButton;
ToolButton6: TToolButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
N2: TMenuItem;
miAddColumn: TMenuItem;
RemoveColumn1: TMenuItem;
N3: TMenuItem;
miClearAllColumns: TMenuItem;
GroupBox2: TGroupBox;
Label25: TLabel;
Label26: TLabel;
edCols: TEdit;
edRows: TEdit;
UpDown1: TUpDown;
UpDown2: TUpDown;
btInsertField: TBitBtn;
btAddField: TBitBtn;
moPropertyDesc: TMemo;
Splitter1: TSplitter;
tsRowProperties: TTabSheet;
tsCellProperties: TTabSheet;
gbRow: TGroupBox;
veRowEditor: TtsGrid;
btShowHiddenRows: TButton;
gbCell: TGroupBox;
veCellEditor: TtsGrid;
cbGridColor: TosColorComboBox;
cbHeadingColor: TosColorComboBox;
cbFocusColor: TosColorComboBox;
cbFocusFontColor: TosColorComboBox;
cbColors: TosColorComboBox;
edDefaultRowHeight: TEdit;
Label27: TLabel;
edDefaultColWidth: TEdit;
Label28: TLabel;
tbSetPicture: TToolButton;
tbClearPicture: TToolButton;
ToolButton8: TToolButton;
chStoreData: TCheckBox;
chGridMenu: TCheckBox;
chPrintTotals: TCheckBox;
tsComboColProperties: TTabSheet;
veComboColEditor: TtsGrid;
Panel5: TPanel;
lbColumns2: TListBox;
chColPropertiesShortList: TCheckBox;
Panel6: TPanel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label16: TLabel;
chAutoFill: TCheckBox;
chValueColSorted: TCheckBox;
cbConvertCase: TComboBox;
cbCompareType: TComboBox;
cbAutoSearch: TComboBox;
cbComboDataSource: TComboBox;
edValueCol: TEdit;
edDropDownRows: TEdit;
edDropDownCols: TEdit;
udDropDownCols: TUpDown;
udDropDownRows: TUpDown;
udValueCol: TUpDown;
chAutoLookup: TCheckBox;
cbDropDownStyle: TComboBox;
chComboStoreData: TCheckBox;
N4: TMenuItem;
miResetGridColumns: TMenuItem;
miSortedFieldList: TMenuItem;
pnTop: TPanel;
pnIndicator: TPanel;
chParentCombo: TCheckBox;
miAddRow: TMenuItem;
miRemoveRow: TMenuItem;
pnComboColumns: TPanel;
lbAllComboFields: TListBox;
btAddComboColumn: TButton;
btRemoveComboColumn: TButton;
lbComboFields: TListBox;
procedure FormCreate(Sender: TObject);
procedure veEditorEndCellEdit(Sender: TObject; DataCol,
DataRow: Integer; var Cancel: Boolean);
procedure veEditorComboDropDown(Sender: TObject; Combo: TtsComboGrid;
DataCol, DataRow: Integer);
procedure veEditorComboCellLoaded(Sender: TObject; Combo: TtsComboGrid;
DataCol, DataRow: Integer; var Value: Variant);
procedure veEditorDblClick(Sender: TObject);
procedure cbPropertyViewChange(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure veEditorCellChanged(Sender: TObject; OldCol, NewCol, OldRow,
NewRow: Integer);
procedure veEditorComboInit(Sender: TObject; Combo: TtsComboGrid;
DataCol, DataRow: Integer);
procedure veEditorComboGetValue(Sender: TObject; Combo: TtsComboGrid;
GridDataCol, GridDataRow, ComboDataRow: Integer; var Value: Variant);
procedure veEditorRowChanged(Sender: TObject; OldRow, NewRow: Integer);
procedure edPropertyValueKeyPress(Sender: TObject; var Key: Char);
procedure edPropertyValueExit(Sender: TObject);
procedure cbBooleanChange(Sender: TObject);
procedure cbBooleanEnter(Sender: TObject);
procedure cbBooleanExit(Sender: TObject);
procedure cbEnumEnter(Sender: TObject);
procedure cbEnumExit(Sender: TObject);
procedure cbEnumChange(Sender: TObject);
procedure sampleGridMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure btAddFieldClick(Sender: TObject);
procedure edColHeadingChange(Sender: TObject);
procedure edColHeadingEnter(Sender: TObject);
procedure edColHeadingExit(Sender: TObject);
procedure lbFieldsDblClick(Sender: TObject);
procedure cbColPropertyViewClick(Sender: TObject);
procedure tbCloseClick(Sender: TObject);
procedure veEditorButtonClick(Sender: TObject; DataCol,
DataRow: Integer);
procedure tbDeleteColumnClick(Sender: TObject);
procedure veColEditorButtonClick(Sender: TObject; DataCol,
DataRow: Integer);
procedure tbAddColumnClick(Sender: TObject);
procedure veColEditorComboDropDown(Sender: TObject;
Combo: TtsComboGrid; DataCol, DataRow: Integer);
procedure veColEditorComboGetValue(Sender: TObject;
Combo: TtsComboGrid; GridDataCol, GridDataRow, ComboDataRow: Integer;
var Value: Variant);
procedure veColEditorComboCellLoaded(Sender: TObject;
Combo: TtsComboGrid; DataCol, DataRow: Integer; var Value: Variant);
procedure veColEditorComboInit(Sender: TObject; Combo: TtsComboGrid;
DataCol, DataRow: Integer);
procedure tbSaveClick(Sender: TObject);
procedure rgGridModeClick(Sender: TObject);
procedure laFontSummaryDblClick(Sender: TObject);
procedure laHeadingFontSummaryDblClick(Sender: TObject);
procedure pgEditorChange(Sender: TObject);
procedure chShowEditorClick(Sender: TObject);
procedure chShowFocusClick(Sender: TObject);
procedure chHeadingOnClick(Sender: TObject);
procedure chRowBarOnClick(Sender: TObject);
procedure chWantTabsClick(Sender: TObject);
procedure cbVertAlignmentChange(Sender: TObject);
procedure cbGridLinesChange(Sender: TObject);
procedure sampleGridCellLoaded(Sender: TObject; DataCol,
DataRow: Integer; var Value: Variant);
procedure sampleGridColResized(Sender: TObject; RowColnr: Integer);
procedure cbColSelectChange(Sender: TObject);
procedure cbRowSelectChange(Sender: TObject);
procedure veColEditorEndCellEdit(Sender: TObject; DataCol,
DataRow: Integer; var Cancel: Boolean);
procedure btAddAllColumnsClick(Sender: TObject);
procedure miResetGridPropertyClick(Sender: TObject);
procedure miResetAllGridPropertiesClick(Sender: TObject);
procedure miResetColumnPropertyClick(Sender: TObject);
procedure miResetAllColumnPropertiesClick(Sender: TObject);
procedure pmResetPopup(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure sampleGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure sampleGridKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure sampleGridKeyPress(Sender: TObject; var Key: Char);
procedure cbControlTypeChange(Sender: TObject);
procedure cbButtonTypeChange(Sender: TObject);
procedure chColMovingClick(Sender: TObject);
procedure chRowMovingClick(Sender: TObject);
procedure sampleDbGridColResized(Sender: TObject; RowColnr: Integer);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -