You've already forked lazarus-ccr
quick find in rxdbgrid
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@897 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -11,13 +11,13 @@
|
||||
<Title Value="RxDBGrid demo"/>
|
||||
<Icon Value="0"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<ActiveEditorIndexAtStart Value="0"/>
|
||||
<ActiveEditorIndexAtStart Value="1"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<UseVersionInfo Value="True"/>
|
||||
<CurrentVersionNr Value="3"/>
|
||||
<CurrentMajorRevNr Value="1"/>
|
||||
<CurrentMinorRevNr Value="1"/>
|
||||
<CurrentMinorRevNr Value="2"/>
|
||||
<ProjectVersion Value="3.1.1.0"/>
|
||||
<FileDescription Value="Demo application from RXFPC library"/>
|
||||
<LegalCopyright Value="Lagunov Aleksey, GPL 2"/>
|
||||
@ -47,14 +47,14 @@
|
||||
<MinVersion Major="1" Release="18" Build="56" Valid="True"/>
|
||||
</Item3>
|
||||
</RequiredPackages>
|
||||
<Units Count="14">
|
||||
<Units Count="15">
|
||||
<Unit0>
|
||||
<Filename Value="RxDBGridDemo.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="RxDBGridDemo"/>
|
||||
<CursorPos X="3" Y="11"/>
|
||||
<TopLine Value="1"/>
|
||||
<UsageCount Value="26"/>
|
||||
<UsageCount Value="27"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
@ -62,10 +62,10 @@
|
||||
<ComponentName Value="RxDBGridMainForm"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="RxDBGridMainUnit"/>
|
||||
<CursorPos X="26" Y="118"/>
|
||||
<TopLine Value="77"/>
|
||||
<CursorPos X="26" Y="19"/>
|
||||
<TopLine Value="17"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="26"/>
|
||||
<UsageCount Value="27"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
@ -91,12 +91,14 @@
|
||||
<Unit5>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<UnitName Value="rxdbgrid"/>
|
||||
<CursorPos X="6" Y="467"/>
|
||||
<TopLine Value="462"/>
|
||||
<CursorPos X="1" Y="1740"/>
|
||||
<TopLine Value="1721"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="12"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="3" Y="1446" ID="1"/>
|
||||
<Item0 X="3" Y="1462" ID="1"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
</Unit5>
|
||||
<Unit6>
|
||||
<Filename Value="../../../../lcl/lresources.pp"/>
|
||||
@ -152,12 +154,137 @@
|
||||
<TopLine Value="1779"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit13>
|
||||
<Unit14>
|
||||
<Filename Value="../../../../../../../../home/alexs/install/2/rxdbgrid.diff"/>
|
||||
<CursorPos X="1" Y="21"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="10"/>
|
||||
<Loaded Value="True"/>
|
||||
<SyntaxHighlighter Value="None"/>
|
||||
</Unit14>
|
||||
</Units>
|
||||
<JumpHistory Count="1" HistoryIndex="0">
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="31" Column="22" TopLine="11"/>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1725" Column="1" TopLine="1706"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1727" Column="1" TopLine="1708"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1729" Column="1" TopLine="1710"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1730" Column="1" TopLine="1711"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1732" Column="1" TopLine="1713"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1735" Column="1" TopLine="1716"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1737" Column="1" TopLine="1718"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1740" Column="1" TopLine="1721"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1735" Column="1" TopLine="1725"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1749" Column="1" TopLine="1730"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1738" Column="43" TopLine="1738"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1760" Column="1" TopLine="1741"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1765" Column="1" TopLine="1746"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1738" Column="35" TopLine="1738"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1760" Column="1" TopLine="1741"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1765" Column="1" TopLine="1746"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1757" Column="1" TopLine="1738"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1763" Column="1" TopLine="1744"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1765" Column="1" TopLine="1746"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="../../rxdbgrid.pas"/>
|
||||
<Caret Line="1766" Column="1" TopLine="1747"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="9" Column="12" TopLine="1"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="25" Column="20" TopLine="1"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="48" Column="48" TopLine="11"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="164" Column="48" TopLine="135"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="17" Column="19" TopLine="17"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="55" Column="58" TopLine="55"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="119" Column="31" TopLine="117"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="17" Column="26" TopLine="17"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="18" Column="26" TopLine="17"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="19" Column="26" TopLine="17"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
@ -1,5 +1,5 @@
|
||||
1 VERSIONINFO
|
||||
FILEVERSION 3,1,1,0
|
||||
FILEVERSION 3,1,2,0
|
||||
PRODUCTVERSION 3,1,1,0
|
||||
{
|
||||
BLOCK "StringFileInfo"
|
||||
@ -9,7 +9,7 @@ PRODUCTVERSION 3,1,1,0
|
||||
VALUE "Comments", "\000"
|
||||
VALUE "CompanyName", "\000"
|
||||
VALUE "FileDescription", "Demo application from RXFPC library\000"
|
||||
VALUE "FileVersion", "3.1.1.0\000"
|
||||
VALUE "FileVersion", "3.1.2.0\000"
|
||||
VALUE "InternalName", "\000"
|
||||
VALUE "LegalCopyright", "Lagunov Aleksey, GPL 2\000"
|
||||
VALUE "LegalTrademarks", "\000"
|
||||
|
@ -1,18 +1,18 @@
|
||||
object RxDBGridMainForm: TRxDBGridMainForm
|
||||
Left = 263
|
||||
Height = 582
|
||||
Height = 609
|
||||
Top = 219
|
||||
Width = 969
|
||||
ActiveControl = Panel1
|
||||
Caption = 'RxDBGrid Demo (ver 3) ...'
|
||||
ClientHeight = 582
|
||||
ClientHeight = 609
|
||||
ClientWidth = 969
|
||||
OnCreate = FormCreate
|
||||
LCLVersion = '0.9.27'
|
||||
object RxDBGrid1: TRxDBGrid
|
||||
Left = 0
|
||||
Height = 533
|
||||
Top = 49
|
||||
Height = 542
|
||||
Top = 67
|
||||
Width = 969
|
||||
TitleButtons = True
|
||||
AutoSort = True
|
||||
@ -80,7 +80,7 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
Filter.DropDownRows = 0
|
||||
Filter.ItemIndex = -1
|
||||
end>
|
||||
OptionsRx = [rdgFooterRows]
|
||||
OptionsRx = [rdgAllowColumnsForm, rdgAllowDialogFind, rdgFooterRows, rdgAllowQuickSearch]
|
||||
FooterColor = clYellow
|
||||
FooterRowCount = 1
|
||||
OnFiltred = RxDBGrid1Filtred
|
||||
@ -97,14 +97,26 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Height = 49
|
||||
Height = 67
|
||||
Top = 0
|
||||
Width = 969
|
||||
Align = alTop
|
||||
AutoSize = True
|
||||
ClientHeight = 49
|
||||
ClientHeight = 67
|
||||
ClientWidth = 969
|
||||
TabOrder = 1
|
||||
object Label1: TLabel
|
||||
AnchorSideLeft.Control = CheckBox1
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Panel1
|
||||
Left = 361
|
||||
Height = 18
|
||||
Top = 6
|
||||
Width = 36
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'Mode'
|
||||
ParentColor = False
|
||||
end
|
||||
object Button1: TButton
|
||||
AnchorSideLeft.Control = Panel1
|
||||
AnchorSideTop.Control = Panel1
|
||||
@ -146,6 +158,26 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
OnChange = CheckBox1Change
|
||||
TabOrder = 2
|
||||
end
|
||||
object ComboBox1: TComboBox
|
||||
AnchorSideLeft.Control = Label1
|
||||
AnchorSideTop.Control = Label1
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 367
|
||||
Height = 31
|
||||
Top = 30
|
||||
Width = 217
|
||||
BorderSpacing.Around = 6
|
||||
ItemHeight = 0
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'Edit mode'
|
||||
'Quick search mode'
|
||||
)
|
||||
OnChange = ComboBox1Change
|
||||
Style = csDropDownList
|
||||
TabOrder = 3
|
||||
Text = 'Edit mode'
|
||||
end
|
||||
end
|
||||
object RxMemoryData1: TRxMemoryData
|
||||
AutoCalcFields = False
|
||||
@ -283,6 +315,17 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
Action = actOptimizeColumnsWidthAll
|
||||
OnClick = actOptimizeColumnsWidthAllExecute
|
||||
end
|
||||
object MenuItem5: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
object MenuItem7: TMenuItem
|
||||
Action = showColumnsDialog
|
||||
OnClick = showColumnsDialogExecute
|
||||
end
|
||||
object MenuItem6: TMenuItem
|
||||
Action = showFindDialog
|
||||
OnClick = showFindDialogExecute
|
||||
end
|
||||
end
|
||||
object ActionList1: TActionList
|
||||
left = 206
|
||||
@ -299,6 +342,14 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
Caption = 'Optimize width...'
|
||||
OnExecute = actOptimizeWidthCol1Execute
|
||||
end
|
||||
object showFindDialog: TAction
|
||||
Caption = 'Show find dialog...'
|
||||
OnExecute = showFindDialogExecute
|
||||
end
|
||||
object showColumnsDialog: TAction
|
||||
Caption = 'Show columns dialog...'
|
||||
OnExecute = showColumnsDialogExecute
|
||||
end
|
||||
end
|
||||
object Datasource2: TDatasource
|
||||
DataSet = RxMemoryData2
|
||||
|
@ -1,11 +1,11 @@
|
||||
{ ��� - ���� ��������, ������������� ��������� lazarus }
|
||||
|
||||
LazarusResources.Add('TRxDBGridMainForm','FORMDATA',[
|
||||
'TPF0'#17'TRxDBGridMainForm'#16'RxDBGridMainForm'#4'Left'#3#7#1#6'Height'#3'F'
|
||||
'TPF0'#17'TRxDBGridMainForm'#16'RxDBGridMainForm'#4'Left'#3#7#1#6'Height'#3'a'
|
||||
+#2#3'Top'#3#219#0#5'Width'#3#201#3#13'ActiveControl'#7#6'Panel1'#7'Caption'#6
|
||||
+#26'RxDBGrid Demo (ver 3) ...'#12'ClientHeight'#3'F'#2#11'ClientWidth'#3#201
|
||||
+#26'RxDBGrid Demo (ver 3) ...'#12'ClientHeight'#3'a'#2#11'ClientWidth'#3#201
|
||||
+#3#8'OnCreate'#7#10'FormCreate'#10'LCLVersion'#6#6'0.9.27'#0#9'TRxDBGrid'#9
|
||||
+'RxDBGrid1'#4'Left'#2#0#6'Height'#3#21#2#3'Top'#2'1'#5'Width'#3#201#3#12'Tit'
|
||||
+'RxDBGrid1'#4'Left'#2#0#6'Height'#3#30#2#3'Top'#2'C'#5'Width'#3#201#3#12'Tit'
|
||||
+'leButtons'#9#8'AutoSort'#9#7'Columns'#14#1#15'Title.Alignment'#7#8'taCenter'
|
||||
+#13'Title.Caption'#6#4'Code'#17'Title.Orientation'#7#12'toHorizontal'#9'Fiel'
|
||||
+'dName'#6#2'ID'#16'Footer.Alignment'#7#14'taRightJustify'#20'Footer.DisplayF'
|
||||
@ -28,83 +28,100 @@ LazarusResources.Add('TRxDBGridMainForm','FORMDATA',[
|
||||
+'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#17'Title.Orie'
|
||||
+'ntation'#7#12'toHorizontal'#5'Width'#3#150#0#9'FieldName'#6#12'DEVELOPER_ID'
|
||||
+#19'Filter.DropDownRows'#2#0#16'Filter.ItemIndex'#2#255#0#0#9'OptionsRx'#11
|
||||
+#13'rdgFooterRows'#0#11'FooterColor'#7#8'clYellow'#14'FooterRowCount'#2#1#9
|
||||
+'OnFiltred'#7#16'RxDBGrid1Filtred'#5'Align'#7#8'alClient'#10'FocusColor'#7#5
|
||||
+'clRed'#13'SelectedColor'#7#11'clHighlight'#13'GridLineStyle'#7#7'psSolid'#10
|
||||
+'DataSource'#7#11'Datasource1'#7'Options'#11#9'dgEditing'#8'dgTitles'#11'dgI'
|
||||
+'ndicator'#14'dgColumnResize'#12'dgColumnMove'#10'dgColLines'#10'dgRowLines'
|
||||
+#6'dgTabs'#21'dgAlwaysShowSelection'#15'dgConfirmDelete'#14'dgCancelOnExit'
|
||||
+#13'dgMultiselect'#18'dgHeaderPushedLook'#0#11'ParentColor'#8#9'PopupMenu'#7
|
||||
+#10'PopupMenu1'#8'TabOrder'#2#0#10'TitleStyle'#7#8'tsNative'#0#0#6'TPanel'#6
|
||||
+'Panel1'#4'Left'#2#0#6'Height'#2'1'#3'Top'#2#0#5'Width'#3#201#3#5'Align'#7#5
|
||||
+'alTop'#8'AutoSize'#9#12'ClientHeight'#2'1'#11'ClientWidth'#3#201#3#8'TabOrd'
|
||||
+'er'#2#1#0#7'TButton'#7'Button1'#22'AnchorSideLeft.Control'#7#6'Panel1'#21'A'
|
||||
+'nchorSideTop.Control'#7#6'Panel1'#4'Left'#2#6#6'Height'#2'%'#3'Top'#2#6#5'W'
|
||||
+'idth'#2'\'#6'Action'#7#12'actCalcTotal'#8'AutoSize'#9#20'BorderSpacing.Arou'
|
||||
+'nd'#2#6#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#0#0#0#7'TButton'#7
|
||||
+'Button2'#22'AnchorSideLeft.Control'#7#7'Button1'#19'AnchorSideLeft.Side'#7#9
|
||||
+'asrBottom'#21'AnchorSideTop.Control'#7#6'Panel1'#4'Left'#2'h'#6'Height'#2'%'
|
||||
+#3'Top'#2#6#5'Width'#3#165#0#6'Action'#7#26'actOptimizeColumnsWidthAll'#8'Au'
|
||||
+'toSize'#9#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerBorder'#2#4#8
|
||||
+'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckBox1'#22'AnchorSideLeft.Control'#7#7
|
||||
+'Button2'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7
|
||||
+#7'Button1'#18'AnchorSideTop.Side'#7#9'asrCenter'#4'Left'#3#19#1#6'Height'#2
|
||||
+#21#3'Top'#2#14#5'Width'#2'P'#18'BorderSpacing.Left'#2#6#7'Caption'#6#10'Use'
|
||||
+' filter'#8'OnChange'#7#15'CheckBox1Change'#8'TabOrder'#2#2#0#0#0#13'TRxMemo'
|
||||
+'ryData'#13'RxMemoryData1'#14'AutoCalcFields'#8#9'FieldDefs'#14#1#4'Name'#6#2
|
||||
+'ID'#8'DataType'#7#9'ftInteger'#9'Precision'#2#255#4'Size'#2#7#0#1#4'Name'#6
|
||||
+#4'NAME'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size'#3#150#0#0#1#4
|
||||
+'Name'#6#5'PRICE'#8'DataType'#7#7'ftFloat'#9'Precision'#2#2#4'Size'#2#12#0#1
|
||||
+#4'Name'#6#9'Developer'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size'
|
||||
+#3#150#0#0#1#4'Name'#6#12'Date_Present'#8'DataType'#7#6'ftDate'#9'Precision'
|
||||
+#2#0#4'Size'#2#0#0#1#4'Name'#6#12'DEVELOPER_ID'#8'DataType'#7#9'ftInteger'#9
|
||||
+'Precision'#2#0#4'Size'#2#0#0#0#16'OnFilterRecordEx'#7#27'RxMemoryData1Filte'
|
||||
+'rRecordEx'#4'left'#3#152#0#3'top'#3#8#1#0#13'TLongintField'#16'RxMemoryData'
|
||||
+'1ID1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkData'#9'FieldName'#6#2'ID'#5
|
||||
+'Index'#2#0#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWher'
|
||||
+'e'#0#8'ReadOnly'#8#8'Required'#8#0#0#12'TStringField'#18'RxMemoryData1NAME1'
|
||||
+#12'DisplayWidth'#3#150#0#9'FieldKind'#7#6'fkData'#9'FieldName'#6#4'NAME'#5
|
||||
+'Index'#2#1#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWher'
|
||||
,'e'#0#8'ReadOnly'#8#8'Required'#8#4'Size'#3#150#0#0#0#11'TFloatField'#19'RxM'
|
||||
+'emoryData1PRICE1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkData'#9'FieldNam'
|
||||
+'e'#6#5'PRICE'#5'Index'#2#2#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUp'
|
||||
+'date'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#13'DisplayFormat'#6#8'#,##'
|
||||
+'0.00'#8'MaxValue'#5#0#0#0#0#0#0#0#0#0#0#8'MinValue'#5#0#0#0#0#0#0#0#0#0#0#9
|
||||
+'Precision'#2#2#0#0#12'TStringField'#23'RxMemoryData1Developer1'#12'DisplayW'
|
||||
+'idth'#3#150#0#9'FieldKind'#7#6'fkData'#9'FieldName'#6#9'Developer'#5'Index'
|
||||
+#2#3#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8
|
||||
+'ReadOnly'#8#8'Required'#8#4'Size'#3#150#0#0#0#10'TDateField'#26'RxMemoryDat'
|
||||
+'a1Date_Present1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkData'#9'FieldName'
|
||||
+#6#12'Date_Present'#5'Index'#2#4#11'LookupCache'#8#13'ProviderFlags'#11#10'p'
|
||||
+'fInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#0#0#13'TLongintField'
|
||||
+#26'RxMemoryData1DEVELOPER_ID1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkDat'
|
||||
+'a'#9'FieldName'#6#12'DEVELOPER_ID'#5'Index'#2#5#9'KeyFields'#6#12'DEVELOPER'
|
||||
+'_ID'#11'LookupCache'#8#13'LookupDataSet'#7#13'RxMemoryData2'#15'LookupKeyFi'
|
||||
+'elds'#6#12'DEVELOPER_ID'#17'LookupResultField'#6#14'DEVELOPER_NAME'#13'Prov'
|
||||
+'iderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#0#0
|
||||
+#0#11'TDatasource'#11'Datasource1'#7'DataSet'#7#13'RxMemoryData1'#4'left'#2
|
||||
+'x'#3'top'#3#8#1#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3#152#0#3'top'#3
|
||||
+#197#0#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7#20'actOptimizeWidthCol1'#7'On'
|
||||
+'Click'#7#27'actOptimizeWidthCol1Execute'#0#0#9'TMenuItem'#9'MenuItem2'#7'Ca'
|
||||
+'ption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6'Action'#7#12'actCalcTotal'#7
|
||||
+'OnClick'#7#19'actCalcTotalExecute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7
|
||||
+#26'actOptimizeColumnsWidthAll'#7'OnClick'#7'!actOptimizeColumnsWidthAllExec'
|
||||
+'ute'#0#0#0#11'TActionList'#11'ActionList1'#4'left'#3#206#0#3'top'#3#197#0#0
|
||||
+#7'TAction'#12'actCalcTotal'#7'Caption'#6#13'Calc total...'#9'OnExecute'#7#19
|
||||
+'actCalcTotalExecute'#0#0#7'TAction'#26'actOptimizeColumnsWidthAll'#7'Captio'
|
||||
+'n'#6#25'Optimize width for all...'#9'OnExecute'#7'!actOptimizeColumnsWidthA'
|
||||
+'llExecute'#0#0#7'TAction'#20'actOptimizeWidthCol1'#7'Caption'#6#17'Optimize'
|
||||
+' width...'#9'OnExecute'#7#27'actOptimizeWidthCol1Execute'#0#0#0#11'TDatasou'
|
||||
+'rce'#11'Datasource2'#7'DataSet'#7#13'RxMemoryData2'#4'left'#3#207#0#3'top'#3
|
||||
+#8#1#0#0#13'TRxMemoryData'#13'RxMemoryData2'#14'AutoCalcFields'#8#9'FieldDef'
|
||||
+'s'#14#1#4'Name'#6#12'DEVELOPER_ID'#8'DataType'#7#9'ftInteger'#9'Precision'#2
|
||||
+#0#4'Size'#2#0#0#1#4'Name'#6#14'DEVELOPER_NAME'#8'DataType'#7#8'ftString'#9
|
||||
+'Precision'#2#0#4'Size'#3#130#0#0#0#4'left'#3#240#0#3'top'#3#8#1#0#13'TLongi'
|
||||
+'ntField'#26'RxMemoryData2DEVELOPER_ID1'#12'DisplayWidth'#2#10#9'FieldKind'#7
|
||||
+#6'fkData'#9'FieldName'#6#12'DEVELOPER_ID'#5'Index'#2#0#11'LookupCache'#8#13
|
||||
+'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8
|
||||
+#0#0#12'TStringField'#28'RxMemoryData2DEVELOPER_NAME1'#12'DisplayWidth'#3#130
|
||||
+#0#9'FieldKind'#7#6'fkData'#9'FieldName'#6#14'DEVELOPER_NAME'#5'Index'#2#1#11
|
||||
+'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnl'
|
||||
+'y'#8#8'Required'#8#4'Size'#3#130#0#0#0#0#0
|
||||
+#19'rdgAllowColumnsForm'#18'rdgAllowDialogFind'#13'rdgFooterRows'#19'rdgAllo'
|
||||
+'wQuickSearch'#0#11'FooterColor'#7#8'clYellow'#14'FooterRowCount'#2#1#9'OnFi'
|
||||
+'ltred'#7#16'RxDBGrid1Filtred'#5'Align'#7#8'alClient'#10'FocusColor'#7#5'clR'
|
||||
+'ed'#13'SelectedColor'#7#11'clHighlight'#13'GridLineStyle'#7#7'psSolid'#10'D'
|
||||
+'ataSource'#7#11'Datasource1'#7'Options'#11#9'dgEditing'#8'dgTitles'#11'dgIn'
|
||||
+'dicator'#14'dgColumnResize'#12'dgColumnMove'#10'dgColLines'#10'dgRowLines'#6
|
||||
+'dgTabs'#21'dgAlwaysShowSelection'#15'dgConfirmDelete'#14'dgCancelOnExit'#13
|
||||
+'dgMultiselect'#18'dgHeaderPushedLook'#0#11'ParentColor'#8#9'PopupMenu'#7#10
|
||||
+'PopupMenu1'#8'TabOrder'#2#0#10'TitleStyle'#7#8'tsNative'#0#0#6'TPanel'#6'Pa'
|
||||
+'nel1'#4'Left'#2#0#6'Height'#2'C'#3'Top'#2#0#5'Width'#3#201#3#5'Align'#7#5'a'
|
||||
+'lTop'#8'AutoSize'#9#12'ClientHeight'#2'C'#11'ClientWidth'#3#201#3#8'TabOrde'
|
||||
+'r'#2#1#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#9'CheckBox1'#19'A'
|
||||
+'nchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#6'Panel1'#4
|
||||
+'Left'#3'i'#1#6'Height'#2#18#3'Top'#2#6#5'Width'#2'$'#20'BorderSpacing.Aroun'
|
||||
+'d'#2#6#7'Caption'#6#4'Mode'#11'ParentColor'#8#0#0#7'TButton'#7'Button1'#22
|
||||
+'AnchorSideLeft.Control'#7#6'Panel1'#21'AnchorSideTop.Control'#7#6'Panel1'#4
|
||||
+'Left'#2#6#6'Height'#2'%'#3'Top'#2#6#5'Width'#2'\'#6'Action'#7#12'actCalcTot'
|
||||
+'al'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#25'BorderSpacing.InnerBorder'
|
||||
+#2#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#22'AnchorSideLeft.Control'#7#7
|
||||
+'Button1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7
|
||||
+#6'Panel1'#4'Left'#2'h'#6'Height'#2'%'#3'Top'#2#6#5'Width'#3#165#0#6'Action'
|
||||
+#7#26'actOptimizeColumnsWidthAll'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6
|
||||
+#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckB'
|
||||
+'ox1'#22'AnchorSideLeft.Control'#7#7'Button2'#19'AnchorSideLeft.Side'#7#9'as'
|
||||
+'rBottom'#21'AnchorSideTop.Control'#7#7'Button1'#18'AnchorSideTop.Side'#7#9
|
||||
+'asrCenter'#4'Left'#3#19#1#6'Height'#2#21#3'Top'#2#14#5'Width'#2'P'#18'Borde'
|
||||
+'rSpacing.Left'#2#6#7'Caption'#6#10'Use filter'#8'OnChange'#7#15'CheckBox1Ch'
|
||||
+'ange'#8'TabOrder'#2#2#0#0#9'TComboBox'#9'ComboBox1'#22'AnchorSideLeft.Contr'
|
||||
+'ol'#7#6'Label1'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'
|
||||
+#7#9'asrBottom'#4'Left'#3'o'#1#6'Height'#2#31#3'Top'#2#30#5'Width'#3#217#0#20
|
||||
+'BorderSpacing.Around'#2#6#10'ItemHeight'#2#0#9'ItemIndex'#2#0#13'Items.Stri'
|
||||
+'ngs'#1#6#9'Edit mode'#6#17'Quick search mode'#0#8'OnChange'#7#15'ComboBox1C'
|
||||
+'hange'#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#3#4'Text'#6#9'Edit mode'
|
||||
+#0#0#0#13'TRxMemoryData'#13'RxMemoryData1'#14'AutoCalcFields'#8#9'FieldDefs'
|
||||
+#14#1#4'Name'#6#2'ID'#8'DataType'#7#9'ftInteger'#9'Precision'#2#255#4'Size'#2
|
||||
+#7#0#1#4'Name'#6#4'NAME'#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size'
|
||||
+#3#150#0#0#1#4'Name'#6#5'PRICE'#8'DataType'#7#7'ftFloat'#9'Precision'#2#2#4
|
||||
,'Size'#2#12#0#1#4'Name'#6#9'Developer'#8'DataType'#7#8'ftString'#9'Precision'
|
||||
+#2#255#4'Size'#3#150#0#0#1#4'Name'#6#12'Date_Present'#8'DataType'#7#6'ftDate'
|
||||
+#9'Precision'#2#0#4'Size'#2#0#0#1#4'Name'#6#12'DEVELOPER_ID'#8'DataType'#7#9
|
||||
+'ftInteger'#9'Precision'#2#0#4'Size'#2#0#0#0#16'OnFilterRecordEx'#7#27'RxMem'
|
||||
+'oryData1FilterRecordEx'#4'left'#3#152#0#3'top'#3#8#1#0#13'TLongintField'#16
|
||||
+'RxMemoryData1ID1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkData'#9'FieldNam'
|
||||
+'e'#6#2'ID'#5'Index'#2#0#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdat'
|
||||
+'e'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#0#0#12'TStringField'#18'RxMem'
|
||||
+'oryData1NAME1'#12'DisplayWidth'#3#150#0#9'FieldKind'#7#6'fkData'#9'FieldNam'
|
||||
+'e'#6#4'NAME'#5'Index'#2#1#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpd'
|
||||
+'ate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#4'Size'#3#150#0#0#0#11'TFlo'
|
||||
+'atField'#19'RxMemoryData1PRICE1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkD'
|
||||
+'ata'#9'FieldName'#6#5'PRICE'#5'Index'#2#2#11'LookupCache'#8#13'ProviderFlag'
|
||||
+'s'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#13'DisplayF'
|
||||
+'ormat'#6#8'#,##0.00'#8'MaxValue'#5#0#0#0#0#0#0#0#0#0#0#8'MinValue'#5#0#0#0#0
|
||||
+#0#0#0#0#0#0#9'Precision'#2#2#0#0#12'TStringField'#23'RxMemoryData1Developer'
|
||||
+'1'#12'DisplayWidth'#3#150#0#9'FieldKind'#7#6'fkData'#9'FieldName'#6#9'Devel'
|
||||
+'oper'#5'Index'#2#3#11'LookupCache'#8#13'ProviderFlags'#11#10'pfInUpdate'#9
|
||||
+'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#4'Size'#3#150#0#0#0#10'TDateField'
|
||||
+#26'RxMemoryData1Date_Present1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkDat'
|
||||
+'a'#9'FieldName'#6#12'Date_Present'#5'Index'#2#4#11'LookupCache'#8#13'Provid'
|
||||
+'erFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#0#0#13
|
||||
+'TLongintField'#26'RxMemoryData1DEVELOPER_ID1'#12'DisplayWidth'#2#10#9'Field'
|
||||
+'Kind'#7#6'fkData'#9'FieldName'#6#12'DEVELOPER_ID'#5'Index'#2#5#9'KeyFields'
|
||||
+#6#12'DEVELOPER_ID'#11'LookupCache'#8#13'LookupDataSet'#7#13'RxMemoryData2'
|
||||
+#15'LookupKeyFields'#6#12'DEVELOPER_ID'#17'LookupResultField'#6#14'DEVELOPER'
|
||||
+'_NAME'#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'R'
|
||||
+'equired'#8#0#0#0#11'TDatasource'#11'Datasource1'#7'DataSet'#7#13'RxMemoryDa'
|
||||
+'ta1'#4'left'#2'x'#3'top'#3#8#1#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3
|
||||
+#152#0#3'top'#3#197#0#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7#20'actOptimize'
|
||||
+'WidthCol1'#7'OnClick'#7#27'actOptimizeWidthCol1Execute'#0#0#9'TMenuItem'#9
|
||||
+'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6'Action'#7#12'a'
|
||||
+'ctCalcTotal'#7'OnClick'#7#19'actCalcTotalExecute'#0#0#9'TMenuItem'#9'MenuIt'
|
||||
+'em3'#6'Action'#7#26'actOptimizeColumnsWidthAll'#7'OnClick'#7'!actOptimizeCo'
|
||||
+'lumnsWidthAllExecute'#0#0#9'TMenuItem'#9'MenuItem5'#7'Caption'#6#1'-'#0#0#9
|
||||
+'TMenuItem'#9'MenuItem7'#6'Action'#7#17'showColumnsDialog'#7'OnClick'#7#24's'
|
||||
+'howColumnsDialogExecute'#0#0#9'TMenuItem'#9'MenuItem6'#6'Action'#7#14'showF'
|
||||
+'indDialog'#7'OnClick'#7#21'showFindDialogExecute'#0#0#0#11'TActionList'#11
|
||||
+'ActionList1'#4'left'#3#206#0#3'top'#3#197#0#0#7'TAction'#12'actCalcTotal'#7
|
||||
+'Caption'#6#13'Calc total...'#9'OnExecute'#7#19'actCalcTotalExecute'#0#0#7'T'
|
||||
+'Action'#26'actOptimizeColumnsWidthAll'#7'Caption'#6#25'Optimize width for a'
|
||||
+'ll...'#9'OnExecute'#7'!actOptimizeColumnsWidthAllExecute'#0#0#7'TAction'#20
|
||||
+'actOptimizeWidthCol1'#7'Caption'#6#17'Optimize width...'#9'OnExecute'#7#27
|
||||
+'actOptimizeWidthCol1Execute'#0#0#7'TAction'#14'showFindDialog'#7'Caption'#6
|
||||
+#19'Show find dialog...'#9'OnExecute'#7#21'showFindDialogExecute'#0#0#7'TAct'
|
||||
+'ion'#17'showColumnsDialog'#7'Caption'#6#22'Show columns dialog...'#9'OnExec'
|
||||
+'ute'#7#24'showColumnsDialogExecute'#0#0#0#11'TDatasource'#11'Datasource2'#7
|
||||
+'DataSet'#7#13'RxMemoryData2'#4'left'#3#207#0#3'top'#3#8#1#0#0#13'TRxMemoryD'
|
||||
+'ata'#13'RxMemoryData2'#14'AutoCalcFields'#8#9'FieldDefs'#14#1#4'Name'#6#12
|
||||
+'DEVELOPER_ID'#8'DataType'#7#9'ftInteger'#9'Precision'#2#0#4'Size'#2#0#0#1#4
|
||||
+'Name'#6#14'DEVELOPER_NAME'#8'DataType'#7#8'ftString'#9'Precision'#2#0#4'Siz'
|
||||
+'e'#3#130#0#0#0#4'left'#3#240#0#3'top'#3#8#1#0#13'TLongintField'#26'RxMemory'
|
||||
+'Data2DEVELOPER_ID1'#12'DisplayWidth'#2#10#9'FieldKind'#7#6'fkData'#9'FieldN'
|
||||
+'ame'#6#12'DEVELOPER_ID'#5'Index'#2#0#11'LookupCache'#8#13'ProviderFlags'#11
|
||||
+#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'#8#0#0#12'TStringFie'
|
||||
+'ld'#28'RxMemoryData2DEVELOPER_NAME1'#12'DisplayWidth'#3#130#0#9'FieldKind'#7
|
||||
+#6'fkData'#9'FieldName'#6#14'DEVELOPER_NAME'#5'Index'#2#1#11'LookupCache'#8
|
||||
+#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#8'ReadOnly'#8#8'Required'
|
||||
+#8#4'Size'#3#130#0#0#0#0#0
|
||||
]);
|
||||
|
@ -14,14 +14,21 @@ type
|
||||
|
||||
TRxDBGridMainForm = class(TForm)
|
||||
actCalcTotal: TAction;
|
||||
MenuItem5: TMenuItem;
|
||||
MenuItem6: TMenuItem;
|
||||
MenuItem7: TMenuItem;
|
||||
showColumnsDialog: TAction;
|
||||
showFindDialog: TAction;
|
||||
actOptimizeWidthCol1: TAction;
|
||||
actOptimizeColumnsWidthAll: TAction;
|
||||
ActionList1: TActionList;
|
||||
Button1: TButton;
|
||||
Button2: TButton;
|
||||
CheckBox1: TCheckBox;
|
||||
ComboBox1: TComboBox;
|
||||
Datasource1: TDatasource;
|
||||
Datasource2: TDatasource;
|
||||
Label1: TLabel;
|
||||
MenuItem1: TMenuItem;
|
||||
MenuItem2: TMenuItem;
|
||||
MenuItem3: TMenuItem;
|
||||
@ -43,10 +50,13 @@ type
|
||||
procedure actOptimizeColumnsWidthAllExecute(Sender: TObject);
|
||||
procedure actOptimizeWidthCol1Execute(Sender: TObject);
|
||||
procedure CheckBox1Change(Sender: TObject);
|
||||
procedure ComboBox1Change(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure RxDBGrid1Filtred(Sender: TObject);
|
||||
procedure RxMemoryData1FilterRecordEx(DataSet: TDataSet; var Accept: Boolean
|
||||
);
|
||||
procedure showColumnsDialogExecute(Sender: TObject);
|
||||
procedure showFindDialogExecute(Sender: TObject);
|
||||
private
|
||||
procedure DoFillFilters;
|
||||
public
|
||||
@ -107,6 +117,16 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRxDBGridMainForm.showColumnsDialogExecute(Sender: TObject);
|
||||
begin
|
||||
RxDBGrid1.ShowColumnsDialog;
|
||||
end;
|
||||
|
||||
procedure TRxDBGridMainForm.showFindDialogExecute(Sender: TObject);
|
||||
begin
|
||||
RxDBGrid1.ShowFindDialog;
|
||||
end;
|
||||
|
||||
procedure TRxDBGridMainForm.DoFillFilters;
|
||||
var
|
||||
C:TRxColumn;
|
||||
@ -156,6 +176,11 @@ begin
|
||||
RxMemoryData1.Filtered:=CheckBox1.Checked;
|
||||
end;
|
||||
|
||||
procedure TRxDBGridMainForm.ComboBox1Change(Sender: TObject);
|
||||
begin
|
||||
RxDBGrid1.ReadOnly:=ComboBox1.ItemIndex <> 0;
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
{$I rxdbgridmainunit.lrs}
|
||||
|
@ -19,6 +19,8 @@
|
||||
- fix sort order in TRxMemDataSet
|
||||
- fix draw buttons in ToolPanel with use system themes
|
||||
- fix error in TRxDBComboBox
|
||||
+ New mode - Quick search data in grid (code from with minor fix)
|
||||
|
||||
22.05.2008 - version 2.0.0.136 (svn revision 100)
|
||||
+ In TRxCustomDBLookupCombo add check for CircularDataLink
|
||||
+ in TRxCustomDBLookupCombo accelerated drawing data
|
||||
|
@ -23,6 +23,8 @@
|
||||
+ Реализована возможность объединения ячеек в заголовке таблицы
|
||||
(смотрите в демке на RxDBGrid)
|
||||
- Исправлена ошибка установки значения для TRxDBComboBox
|
||||
+ Реализовн режим быстрого поиска (код от Алексея Козлова с небольшими доработками) - подробнее смотри пункт 6 в файле readmy.txt
|
||||
|
||||
22.05.2008 - версия 2.0.0.136 (svn revision 100)
|
||||
+ У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink
|
||||
+ У объекта TRxCustomDBLookupCombo ускорена отрисовка данных
|
||||
|
@ -4,3 +4,7 @@
|
||||
A. Для отображения списка используется объект TRxDBGrid
|
||||
(прямой наследник TDBGrid) - в нём для позиционирования в
|
||||
начало/конец списка клавиши Ctrl+Home/Ctrl+End
|
||||
|
||||
2. В RxDBGrid режим быстрого поиска работает при RxDBGrid.ReadOnly = true
|
||||
подробнее смотри пункт 6 в файле readmy.txt
|
||||
|
||||
|
@ -48,4 +48,18 @@
|
||||
объяснение заключается в том что при потере фокуса TDbGrid и его наследниеи вызывают
|
||||
метод Cancel
|
||||
|
||||
6. Вопросы задавать мылом или на форуме FreePascal.ru (предпочтительней)
|
||||
6.
|
||||
Новшество: Добавлен в RxDBGrid UTF8-быстрый поиск.
|
||||
Включается опцией rdgAllowQuickUTF8Search (добавил её в rxoptions, это нормально? или было
|
||||
лучше включить в состав других опций?)
|
||||
Управляется свойством QuickUTF8Search
|
||||
Не реагирует на список "управляющих" клавиш однобайтовых: CBadQuickUTF8SearchSymbols
|
||||
По управляющим однобайтовым клавишам сбрасывает подстроку поиска: CCancelQuickUTF8SearchKeys
|
||||
Для обработки событий поиска добавлен тип TRxQuickUTF8SearchNotifyEvent
|
||||
Перед началом попытки поиска вызывает событие BeforeQuickUTF8Search, в качестве AValue
|
||||
передаётся подстрока-кандидат на поиск, если её сбросить в текущее значение QuickUTF8Search
|
||||
поиск производится не будет
|
||||
После успешного завершения поиска вызывается событие AfterQuickUTF8Search, куда передаётся в
|
||||
качестве AValue предыдущая подстрока поиска. Последнее событие удобно использовать для
|
||||
отображения где ни будь на общей форме текущий подстроки поиска.
|
||||
7. Вопросы задавать мылом или на форуме FreePascal.ru (предпочтительней)
|
||||
|
@ -2,11 +2,4 @@
|
||||
в TPageManager необходимо обработать ситуация прямого изменения
|
||||
закладки в PageControl-е
|
||||
|
||||
2. В RxDBGrid
|
||||
- планирую сделать объеденение заголовков в один групирующий:
|
||||
|-----------------|
|
||||
| |
|
||||
|-----------------|
|
||||
| | |
|
||||
|-----------------|
|
||||
|
||||
|
@ -6,10 +6,16 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LResources, LCLType, LCLIntf, Forms, Controls,
|
||||
Graphics, Dialogs, Grids, DBGrids, DB, PropertyStorage, vclutils, LMessages,
|
||||
types, StdCtrls;
|
||||
Graphics, Dialogs, Grids, dbutils, DBGrids, DB, PropertyStorage, vclutils,
|
||||
LMessages, types, StdCtrls;
|
||||
|
||||
const
|
||||
CBadQuickSearchSymbols = [VK_UNKNOWN..VK_HELP]+[VK_LWIN..VK_SLEEP]+[VK_NUMLOCK..VK_SCROLL]+[VK_LSHIFT..VK_OEM_102]+[VK_PROCESSKEY]+[VK_ATTN..VK_UNDEFINED];
|
||||
CCancelQuickSearchKeys = [VK_ESCAPE,VK_CANCEL,VK_DELETE,VK_INSERT,VK_DOWN,VK_UP,VK_NEXT,VK_PRIOR,VK_TAB,VK_RETURN,VK_HOME,VK_END,VK_SPACE,VK_MULTIPLY];
|
||||
|
||||
type
|
||||
TRxQuickSearchNotifyEvent = procedure(Sender: TObject; Field : TField; var AValue : string) of object;
|
||||
|
||||
TSortMarker = (smNone, smDown, smUp);
|
||||
|
||||
TGetBtnParamsEvent = procedure (Sender: TObject; Field: TField;
|
||||
@ -34,7 +40,8 @@ type
|
||||
rdgXORColSizing,
|
||||
rdgFilter,
|
||||
rdgMultiTitleLines,
|
||||
rdgMrOkOnDblClik
|
||||
rdgMrOkOnDblClik,
|
||||
rdgAllowQuickSearch
|
||||
);
|
||||
|
||||
TOptionsRx = set of TOptionRx;
|
||||
@ -241,6 +248,10 @@ type
|
||||
FRxDbGridLookupComboEditor:TCustomControl;
|
||||
FRxDbGridDateEditor:TWinControl;
|
||||
|
||||
FAfterQuickSearch : TRxQuickSearchNotifyEvent;
|
||||
FBeforeQuickSearch : TRxQuickSearchNotifyEvent;
|
||||
FQuickUTF8Search : String;
|
||||
|
||||
function GetColumns: TRxDbGridColumns;
|
||||
function GetPropertyStorage: TCustomPropertyStorage;
|
||||
function GetTitleButtons: boolean;
|
||||
@ -282,6 +293,7 @@ type
|
||||
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
|
||||
X, Y: Integer); override;
|
||||
procedure KeyDown(var Key : Word; Shift : TShiftState); override;
|
||||
procedure UTF8KeyPress(var UTF8Key: TUTF8Char); override;
|
||||
function CreateColumns: TGridColumns; override;
|
||||
procedure DrawCellBitmap(RxColumn:TRxColumn; aRect: TRect; aState: TGridDrawState; AImageIndex:integer); virtual;
|
||||
procedure SetEditText(ACol, ARow: Longint; const Value: string); override;
|
||||
@ -297,6 +309,7 @@ type
|
||||
procedure InternalOptimizeColumnsWidth(AColList:TList);
|
||||
function IsDefaultRowHeightStored:boolean;
|
||||
procedure VisualChange; override;
|
||||
procedure SetQuickUTF8Search(AValue : String);
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
@ -317,7 +330,10 @@ type
|
||||
procedure OptimizeColumnsWidth(AColList:String);
|
||||
procedure OptimizeColumnsWidthAll;
|
||||
procedure UpdateTitleHight;
|
||||
property QuickUTF8Search:String read FQuickUTF8Search write SetQuickUTF8Search;
|
||||
published
|
||||
property AfterQuickSearch: TRxQuickSearchNotifyEvent read FAfterQuickSearch write FAfterQuickSearch;
|
||||
property BeforeQuickSearch: TRxQuickSearchNotifyEvent read FBeforeQuickSearch write FBeforeQuickSearch;
|
||||
property OnGetBtnParams: TGetBtnParamsEvent read FOnGetBtnParams write FOnGetBtnParams;
|
||||
property TitleButtons: boolean read GetTitleButtons write SetTitleButtons;
|
||||
property AutoSort:boolean read FAutoSort write SetAutoSort;
|
||||
@ -1698,14 +1714,73 @@ begin
|
||||
inherited MouseUp(Button, Shift, X, Y);
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.SetQuickUTF8Search(AValue : String);
|
||||
var
|
||||
ClearSearchValue : Boolean;
|
||||
OldSearchString : String;
|
||||
begin
|
||||
if ( rdgAllowQuickSearch in OptionsRx ) then
|
||||
begin
|
||||
OldSearchString := Self.FQuickUTF8Search;
|
||||
if (OldSearchString <> AValue ) and Assigned(Self.FBeforeQuickSearch) then
|
||||
Self.FBeforeQuickSearch(Self, SelectedField, AValue);
|
||||
if OldSearchString <> AValue then
|
||||
begin
|
||||
ClearSearchValue := True;
|
||||
if ( Length(AValue) > 0 ) and ( Self.DatalinkActive ) then
|
||||
begin
|
||||
if (DataSource.DataSet.State = dsBrowse) and (not (DataSource.DataSet.EOF and DataSource.DataSet.BOF)) then
|
||||
begin
|
||||
//1.Вызываем процедурку поиска...
|
||||
if DataSetLocateThrough(Self.DataSource.DataSet, Self.SelectedField.FieldName,AValue,[loPartialKey,loCaseInsensitive]) then
|
||||
Self.FQuickUTF8Search := AValue;
|
||||
ClearSearchValue := False;
|
||||
end;
|
||||
end;
|
||||
if ClearSearchValue then
|
||||
begin
|
||||
Self.FQuickUTF8Search := '';
|
||||
end;
|
||||
if (OldSearchString <> Self.FQuickUTF8Search ) and Assigned(Self.FAfterQuickSearch) then
|
||||
Self.FAfterQuickSearch(Self, SelectedField, OldSearchString);
|
||||
end
|
||||
end;
|
||||
//TODO: сделать отображение ищущейся буквы/строки.
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.UTF8KeyPress(var UTF8Key: TUTF8Char);
|
||||
var
|
||||
CheckUp : Boolean;
|
||||
begin
|
||||
inherited UTF8KeyPress(UTF8Key);
|
||||
if ReadOnly then
|
||||
begin
|
||||
//0. Проверяем что это кнопка значащая, увеличиваем "строку поиска"
|
||||
if Length(UTF8Key) = 1 then
|
||||
begin
|
||||
//DebugLn('Ord Of Key:',IntToStr(Ord(UTF8Key[1])));
|
||||
CheckUp := not ( Ord(UTF8Key[1]) in CBadQuickSearchSymbols )
|
||||
end
|
||||
else
|
||||
CheckUp := True;
|
||||
// DebugLn('RxDBGrid.UTF8KeyPress check',IfThen(CheckUp,'True','False'),'INIT UTF8Key= ',UTF8Key,' Selected Field: ', Self.SelectedField.FieldName);
|
||||
if CheckUp then
|
||||
QuickUTF8Search := QuickUTF8Search + Trim(UTF8Key);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.KeyDown(var Key: Word; Shift: TShiftState);
|
||||
var
|
||||
FTmpReadOnly:boolean;
|
||||
begin
|
||||
//DebugLn('RxDBGrid.KeyDown ',Name,' INIT Key= ',IntToStr(Key));
|
||||
if (Key in CCancelQuickSearchKeys) then
|
||||
if Length(QuickUTF8Search) > 0 then QuickUTF8Search := '';
|
||||
case Key of
|
||||
ord('F'):begin
|
||||
if (ssCtrl in Shift) and (rdgAllowDialogFind in OptionsRx) then
|
||||
begin
|
||||
if Length(QuickUTF8Search) > 0 then QuickUTF8Search := '';
|
||||
ShowFindDialog;
|
||||
exit;
|
||||
end;
|
||||
@ -1713,6 +1788,7 @@ begin
|
||||
ord('W'):begin
|
||||
if (ssCtrl in Shift) and (rdgAllowColumnsForm in OptionsRx) then
|
||||
begin
|
||||
if Length(QuickUTF8Search) > 0 then QuickUTF8Search := '';
|
||||
ShowColumnsDialog;
|
||||
exit;
|
||||
end;
|
||||
|
Reference in New Issue
Block a user