rx corx component: updated to version 1.1.4.93
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@246 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
a670b3cc11
commit
fdc71696d7
@ -47,7 +47,7 @@
|
||||
<CursorPos X="3" Y="11"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="21"/>
|
||||
<UsageCount Value="22"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
@ -56,10 +56,10 @@
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ResourceFilename Value="rxdbgridmainunit.lrs"/>
|
||||
<UnitName Value="RxDBGridMainUnit"/>
|
||||
<CursorPos X="20" Y="34"/>
|
||||
<TopLine Value="14"/>
|
||||
<CursorPos X="78" Y="70"/>
|
||||
<TopLine Value="37"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="21"/>
|
||||
<UsageCount Value="22"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
@ -88,7 +88,7 @@
|
||||
<CursorPos X="13" Y="626"/>
|
||||
<TopLine Value="608"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="11"/>
|
||||
<UsageCount Value="12"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="3" Y="1444" ID="1"/>
|
||||
</Bookmarks>
|
||||
@ -114,127 +114,51 @@
|
||||
<CursorPos X="14" Y="455"/>
|
||||
<TopLine Value="437"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="10"/>
|
||||
<UsageCount Value="11"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit8>
|
||||
</Units>
|
||||
<JumpHistory Count="29" HistoryIndex="28">
|
||||
<JumpHistory Count="10" HistoryIndex="9">
|
||||
<Position1>
|
||||
<Filename Value="RxDBGridDemo.lpr"/>
|
||||
<Caret Line="5" Column="37" TopLine="1"/>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="34" Column="20" TopLine="14"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="30" Column="40" TopLine="9"/>
|
||||
<Caret Line="62" Column="5" TopLine="19"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="29" Column="7" TopLine="9"/>
|
||||
<Caret Line="36" Column="49" TopLine="35"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="17" Column="20" TopLine="9"/>
|
||||
<Caret Line="35" Column="48" TopLine="34"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="22" Column="5" TopLine="9"/>
|
||||
<Caret Line="39" Column="9" TopLine="37"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="48" Column="1" TopLine="19"/>
|
||||
<Caret Line="79" Column="10" TopLine="55"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="23" Column="45" TopLine="16"/>
|
||||
<Caret Line="53" Column="30" TopLine="49"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="..\..\rxdbgrid.pas"/>
|
||||
<Caret Line="945" Column="14" TopLine="917"/>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="32" Column="37" TopLine="31"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="..\..\rxdbgrid.pas"/>
|
||||
<Caret Line="625" Column="14" TopLine="612"/>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="33" Column="38" TopLine="31"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="..\..\rxdbgrid.pas"/>
|
||||
<Caret Line="326" Column="23" TopLine="308"/>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="34" Column="38" TopLine="31"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="..\..\rxdbgrid.pas"/>
|
||||
<Caret Line="326" Column="23" TopLine="308"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="..\..\rxdbgrid.pas"/>
|
||||
<Caret Line="626" Column="53" TopLine="607"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="41" Column="5" TopLine="27"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="20" Column="28" TopLine="9"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="27" Column="47" TopLine="13"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="53" Column="21" TopLine="35"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="45" Column="44" TopLine="35"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="16" Column="30" TopLine="9"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="27" Column="5" TopLine="26"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="49" Column="4" TopLine="38"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="27" Column="1" TopLine="9"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="62" Column="1" TopLine="32"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="28" Column="48" TopLine="28"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="57" Column="1" TopLine="39"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="30" Column="60" TopLine="29"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="56" Column="1" TopLine="41"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="32" Column="1" TopLine="14"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="24" Column="26" TopLine="14"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="rxdbgridmainunit.pas"/>
|
||||
<Caret Line="25" Column="26" TopLine="14"/>
|
||||
</Position29>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
@ -258,7 +182,7 @@
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<BreakPoints Count="2">
|
||||
<BreakPoints Count="3">
|
||||
<Item1>
|
||||
<Source Value="..\..\rxlookup.pas"/>
|
||||
<Line Value="1013"/>
|
||||
@ -267,6 +191,10 @@
|
||||
<Source Value="..\..\rxpopupunit.pas"/>
|
||||
<Line Value="267"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Source Value="rxdbgridmainunit.pas"/>
|
||||
<Line Value="51"/>
|
||||
</Item3>
|
||||
</BreakPoints>
|
||||
<Watches Count="1">
|
||||
<Item1>
|
||||
|
@ -2,18 +2,18 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
Left = 353
|
||||
Height = 582
|
||||
Top = 161
|
||||
Width = 652
|
||||
HorzScrollBar.Page = 651
|
||||
Width = 827
|
||||
HorzScrollBar.Page = 826
|
||||
VertScrollBar.Page = 581
|
||||
ActiveControl = RxDBGrid1
|
||||
Caption = 'RxDBGrid Demo (ver 2) ...'
|
||||
ClientHeight = 582
|
||||
ClientWidth = 652
|
||||
ClientWidth = 827
|
||||
OnCreate = FormCreate
|
||||
object RxDBGrid1: TRxDBGrid
|
||||
Height = 532
|
||||
Top = 50
|
||||
Width = 652
|
||||
Width = 827
|
||||
Columns = <
|
||||
item
|
||||
Title.Alignment = taCenter
|
||||
@ -22,6 +22,7 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
Footer.Alignment = taRightJustify
|
||||
Footer.DisplayFormat = 'Count: %d'
|
||||
Footer.ValueType = fvtCount
|
||||
Filter.Color = clLime
|
||||
Filter.ItemIndex = -1
|
||||
end
|
||||
item
|
||||
@ -29,6 +30,14 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
Title.Caption = 'Software Name'
|
||||
Width = 450
|
||||
FieldName = 'NAME'
|
||||
Filter.Color = clLime
|
||||
Filter.ItemIndex = -1
|
||||
end
|
||||
item
|
||||
Title.Alignment = taCenter
|
||||
Width = 150
|
||||
FieldName = 'Developer'
|
||||
Filter.Color = clLime
|
||||
Filter.ItemIndex = -1
|
||||
end
|
||||
item
|
||||
@ -41,11 +50,13 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
Footer.DisplayFormat = '#,##0.00'
|
||||
Footer.FieldName = 'PRICE'
|
||||
Footer.ValueType = fvtSum
|
||||
Filter.Color = clLime
|
||||
Filter.ItemIndex = -1
|
||||
end>
|
||||
OptionsRx = [rdgFooterRows]
|
||||
FooterColor = clYellow
|
||||
FooterRowCount = 1
|
||||
OnFiltred = RxDBGrid1Filtred
|
||||
Align = alClient
|
||||
FocusColor = clRed
|
||||
SelectedColor = clHighlight
|
||||
@ -61,10 +72,10 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Height = 50
|
||||
Width = 652
|
||||
Width = 827
|
||||
Align = alTop
|
||||
ClientHeight = 50
|
||||
ClientWidth = 652
|
||||
ClientWidth = 827
|
||||
TabOrder = 1
|
||||
object Button1: TButton
|
||||
Left = 8
|
||||
@ -84,9 +95,18 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
BorderSpacing.InnerBorder = 4
|
||||
TabOrder = 1
|
||||
end
|
||||
object CheckBox1: TCheckBox
|
||||
Left = 241
|
||||
Height = 13
|
||||
Top = 8
|
||||
Width = 61
|
||||
Caption = 'Use filter'
|
||||
OnChange = CheckBox1Change
|
||||
TabOrder = 2
|
||||
UseOnChange = True
|
||||
end
|
||||
end
|
||||
object RxMemoryData1: TRxMemoryData
|
||||
Active = True
|
||||
FieldDefs = <
|
||||
item
|
||||
Name = 'ID'
|
||||
@ -105,9 +125,45 @@ object RxDBGridMainForm: TRxDBGridMainForm
|
||||
DataType = ftFloat
|
||||
Precision = 2
|
||||
Size = 12
|
||||
end
|
||||
item
|
||||
Name = 'Developer'
|
||||
DataType = ftString
|
||||
Precision = -1
|
||||
Size = 150
|
||||
end>
|
||||
left = 152
|
||||
OnFilterRecordEx = RxMemoryData1FilterRecordEx
|
||||
left = 144
|
||||
top = 264
|
||||
object RxMemoryData1ID1: TLongintField
|
||||
AlignMent = taRightJustify
|
||||
DisplayWidth = 10
|
||||
FieldName = 'ID'
|
||||
ProviderFlags = [pfInUpdate, pfInWhere]
|
||||
end
|
||||
object RxMemoryData1NAME1: TStringField
|
||||
DisplayWidth = 150
|
||||
FieldName = 'NAME'
|
||||
Index = 1
|
||||
ProviderFlags = [pfInUpdate, pfInWhere]
|
||||
Size = 150
|
||||
end
|
||||
object RxMemoryData1PRICE1: TFloatField
|
||||
AlignMent = taRightJustify
|
||||
DisplayWidth = 10
|
||||
FieldName = 'PRICE'
|
||||
Index = 2
|
||||
ProviderFlags = [pfInUpdate, pfInWhere]
|
||||
DisplayFormat = '#,##0.00'
|
||||
Precision = 2
|
||||
end
|
||||
object RxMemoryData1Developer1: TStringField
|
||||
DisplayWidth = 150
|
||||
FieldName = 'Developer'
|
||||
Index = 3
|
||||
ProviderFlags = [pfInUpdate, pfInWhere]
|
||||
Size = 150
|
||||
end
|
||||
end
|
||||
object Datasource1: TDatasource
|
||||
DataSet = RxMemoryData1
|
||||
|
@ -2,51 +2,68 @@
|
||||
|
||||
LazarusResources.Add('TRxDBGridMainForm','FORMDATA',[
|
||||
'TPF0'#17'TRxDBGridMainForm'#16'RxDBGridMainForm'#4'Left'#3'a'#1#6'Height'#3
|
||||
+'F'#2#3'Top'#3#161#0#5'Width'#3#140#2#18'HorzScrollBar.Page'#3#139#2#18'Vert'
|
||||
+'ScrollBar.Page'#3'E'#2#13'ActiveControl'#7#9'RxDBGrid1'#7'Caption'#6#26'RxD'
|
||||
+'BGrid Demo (ver 2) ...'#12'ClientHeight'#3'F'#2#11'ClientWidth'#3#140#2#8
|
||||
+'OnCreate'#7#10'FormCreate'#0#9'TRxDBGrid'#9'RxDBGrid1'#6'Height'#3#20#2#3'T'
|
||||
+'op'#2'2'#5'Width'#3#140#2#7'Columns'#14#1#15'Title.Alignment'#7#8'taCenter'
|
||||
+#13'Title.Caption'#6#4'Code'#9'FieldName'#6#2'ID'#16'Footer.Alignment'#7#14
|
||||
+'taRightJustify'#20'Footer.DisplayFormat'#6#9'Count: %d'#16'Footer.ValueType'
|
||||
+#7#8'fvtCount'#16'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCent'
|
||||
+'er'#13'Title.Caption'#6#13'Software Name'#5'Width'#3#194#1#9'FieldName'#6#4
|
||||
+'NAME'#16'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#13'T'
|
||||
+'itle.Caption'#6#4'Cost'#5'Width'#2'Z'#9'FieldName'#6#5'PRICE'#13'DisplayFor'
|
||||
+'mat'#6#8'#,##0.00'#16'Footer.Alignment'#7#14'taRightJustify'#20'Footer.Disp'
|
||||
+'layFormat'#6#8'#,##0.00'#16'Footer.FieldName'#6#5'PRICE'#16'Footer.ValueTyp'
|
||||
+'e'#7#6'fvtSum'#16'Filter.ItemIndex'#2#255#0#0#9'OptionsRx'#11#13'rdgFooterR'
|
||||
+'ows'#0#11'FooterColor'#7#8'clYellow'#14'FooterRowCount'#2#1#5'Align'#7#8'al'
|
||||
+'Client'#10'FocusColor'#7#5'clRed'#13'SelectedColor'#7#11'clHighlight'#10'Da'
|
||||
+'taSource'#7#11'Datasource1'#10'FixedColor'#7#9'clBtnFace'#7'Options'#11#9'd'
|
||||
+'gEditing'#8'dgTitles'#11'dgIndicator'#14'dgColumnResize'#12'dgColumnMove'#10
|
||||
+'dgColLines'#10'dgRowLines'#6'dgTabs'#21'dgAlwaysShowSelection'#15'dgConfirm'
|
||||
+'Delete'#14'dgCancelOnExit'#13'dgMultiselect'#0#12'OptionsExtra'#11#14'dgeAu'
|
||||
+'toColumns'#17'dgeCheckboxColumn'#0#11'ParentColor'#8#9'PopupMenu'#7#10'Popu'
|
||||
+'pMenu1'#10'Scrollbars'#7#6'ssBoth'#8'TabOrder'#2#0#7'TabStop'#9#0#0#6'TPane'
|
||||
+'l'#6'Panel1'#6'Height'#2'2'#5'Width'#3#140#2#5'Align'#7#5'alTop'#12'ClientH'
|
||||
+'eight'#2'2'#11'ClientWidth'#3#140#2#8'TabOrder'#2#1#0#7'TButton'#7'Button1'
|
||||
+#4'Left'#2#8#6'Height'#2#25#3'Top'#2#8#5'Width'#2'K'#6'Action'#7#12'actCalcT'
|
||||
+'otal'#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#0#0#0#7'TButton'#7'Bu'
|
||||
+'tton2'#4'Left'#2'X'#6'Height'#2#25#3'Top'#2#8#5'Width'#3#136#0#6'Action'#7
|
||||
+#26'actOptimizeColumnsWidthAll'#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'
|
||||
+#2#1#0#0#0#13'TRxMemoryData'#13'RxMemoryData1'#6'Active'#9#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'Si'
|
||||
+'ze'#2#12#0#0#4'left'#3#152#0#3'top'#3#8#1#0#0#11'TDatasource'#11'Datasource'
|
||||
+'1'#7'DataSet'#7#13'RxMemoryData1'#4'left'#2'x'#3'top'#3#8#1#0#0#10'TPopupMe'
|
||||
+'nu'#10'PopupMenu1'#4'left'#3#152#0#3'top'#3#197#0#0#9'TMenuItem'#9'MenuItem'
|
||||
+'1'#6'Action'#7#20'actOptimizeWidthCol1'#7'OnClick'#7#27'actOptimizeWidthCol'
|
||||
+'1Execute'#0#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#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'!actOptimizeColumnsWidthAllExecute'#0#0#0#11'TActionList'#11'Act'
|
||||
+'ionList1'#4'left'#3#206#0#3'top'#3#197#0#0#7'TAction'#12'actCalcTotal'#7'Ca'
|
||||
+'ption'#6#13'Calc total...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#19'actCa'
|
||||
+'lcTotalExecute'#0#0#7'TAction'#26'actOptimizeColumnsWidthAll'#7'Caption'#6
|
||||
+#25'Optimize width for all...'#18'DisableIfNoHandler'#9#9'OnExecute'#7'!actO'
|
||||
+'ptimizeColumnsWidthAllExecute'#0#0#7'TAction'#20'actOptimizeWidthCol1'#7'Ca'
|
||||
+'ption'#6#17'Optimize width...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#27'a'
|
||||
+'ctOptimizeWidthCol1Execute'#0#0#0#0
|
||||
+'F'#2#3'Top'#3#161#0#5'Width'#3';'#3#18'HorzScrollBar.Page'#3':'#3#18'VertSc'
|
||||
+'rollBar.Page'#3'E'#2#13'ActiveControl'#7#9'RxDBGrid1'#7'Caption'#6#26'RxDBG'
|
||||
+'rid Demo (ver 2) ...'#12'ClientHeight'#3'F'#2#11'ClientWidth'#3';'#3#8'OnC'
|
||||
+'reate'#7#10'FormCreate'#0#9'TRxDBGrid'#9'RxDBGrid1'#6'Height'#3#20#2#3'Top'
|
||||
+#2'2'#5'Width'#3';'#3#7'Columns'#14#1#15'Title.Alignment'#7#8'taCenter'#13'T'
|
||||
+'itle.Caption'#6#4'Code'#9'FieldName'#6#2'ID'#16'Footer.Alignment'#7#14'taRi'
|
||||
+'ghtJustify'#20'Footer.DisplayFormat'#6#9'Count: %d'#16'Footer.ValueType'#7#8
|
||||
+'fvtCount'#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1#15'Ti'
|
||||
+'tle.Alignment'#7#8'taCenter'#13'Title.Caption'#6#13'Software Name'#5'Width'
|
||||
+#3#194#1#9'FieldName'#6#4'NAME'#12'Filter.Color'#7#6'clLime'#16'Filter.ItemI'
|
||||
+'ndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#5'Width'#3#150#0#9'FieldN'
|
||||
+'ame'#6#9'Developer'#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255
|
||||
+#0#1#15'Title.Alignment'#7#8'taCenter'#13'Title.Caption'#6#4'Cost'#5'Width'#2
|
||||
+'Z'#9'FieldName'#6#5'PRICE'#13'DisplayFormat'#6#8'#,##0.00'#16'Footer.Alignm'
|
||||
+'ent'#7#14'taRightJustify'#20'Footer.DisplayFormat'#6#8'#,##0.00'#16'Footer.'
|
||||
+'FieldName'#6#5'PRICE'#16'Footer.ValueType'#7#6'fvtSum'#12'Filter.Color'#7#6
|
||||
+'clLime'#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'RxDB'
|
||||
+'Grid1Filtred'#5'Align'#7#8'alClient'#10'FocusColor'#7#5'clRed'#13'SelectedC'
|
||||
+'olor'#7#11'clHighlight'#10'DataSource'#7#11'Datasource1'#10'FixedColor'#7#9
|
||||
+'clBtnFace'#7'Options'#11#9'dgEditing'#8'dgTitles'#11'dgIndicator'#14'dgColu'
|
||||
+'mnResize'#12'dgColumnMove'#10'dgColLines'#10'dgRowLines'#6'dgTabs'#21'dgAlw'
|
||||
+'aysShowSelection'#15'dgConfirmDelete'#14'dgCancelOnExit'#13'dgMultiselect'#0
|
||||
+#12'OptionsExtra'#11#14'dgeAutoColumns'#17'dgeCheckboxColumn'#0#11'ParentCol'
|
||||
+'or'#8#9'PopupMenu'#7#10'PopupMenu1'#10'Scrollbars'#7#6'ssBoth'#8'TabOrder'#2
|
||||
+#0#7'TabStop'#9#0#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#5'Width'#3';'#3#5'Ali'
|
||||
+'gn'#7#5'alTop'#12'ClientHeight'#2'2'#11'ClientWidth'#3';'#3#8'TabOrder'#2#1
|
||||
+#0#7'TButton'#7'Button1'#4'Left'#2#8#6'Height'#2#25#3'Top'#2#8#5'Width'#2'K'
|
||||
+#6'Action'#7#12'actCalcTotal'#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2
|
||||
+#0#0#0#7'TButton'#7'Button2'#4'Left'#2'X'#6'Height'#2#25#3'Top'#2#8#5'Width'
|
||||
+#3#136#0#6'Action'#7#26'actOptimizeColumnsWidthAll'#25'BorderSpacing.InnerBo'
|
||||
+'rder'#2#4#8'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckBox1'#4'Left'#3#241#0#6'H'
|
||||
+'eight'#2#13#3'Top'#2#8#5'Width'#2'='#7'Caption'#6#10'Use filter'#8'OnChange'
|
||||
+#7#15'CheckBox1Change'#8'TabOrder'#2#2#11'UseOnChange'#9#0#0#0#13'TRxMemoryD'
|
||||
+'ata'#13'RxMemoryData1'#9'FieldDefs'#14#1#4'Name'#6#2'ID'#8'DataType'#7#9'ft'
|
||||
+'Integer'#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'Dat'
|
||||
+'aType'#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#0#16'OnFilte'
|
||||
+'rRecordEx'#7#27'RxMemoryData1FilterRecordEx'#4'left'#3#144#0#3'top'#3#8#1#0
|
||||
+#13'TLongintField'#16'RxMemoryData1ID1'#9'AlignMent'#7#14'taRightJustify'#12
|
||||
+'DisplayWidth'#2#10#9'FieldName'#6#2'ID'#13'ProviderFlags'#11#10'pfInUpdate'
|
||||
+#9'pfInWhere'#0#0#0#12'TStringField'#18'RxMemoryData1NAME1'#12'DisplayWidth'
|
||||
+#3#150#0#9'FieldName'#6#4'NAME'#5'Index'#2#1#13'ProviderFlags'#11#10'pfInUpd'
|
||||
+'ate'#9'pfInWhere'#0#4'Size'#3#150#0#0#0#11'TFloatField'#19'RxMemoryData1PRI'
|
||||
+'CE1'#9'AlignMent'#7#14'taRightJustify'#12'DisplayWidth'#2#10#9'FieldName'#6
|
||||
+#5'PRICE'#5'Index'#2#2#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#13
|
||||
+'DisplayFormat'#6#8'#,##0.00'#9'Precision'#2#2#0#0#12'TStringField'#23'RxMem'
|
||||
+'oryData1Developer1'#12'DisplayWidth'#3#150#0#9'FieldName'#6#9'Developer'#5
|
||||
+'Index'#2#3#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#4'Size'#3#150
|
||||
+#0#0#0#0#11'TDatasource'#11'Datasource1'#7'DataSet'#7#13'RxMemoryData1'#4'le'
|
||||
+'ft'#2'x'#3'top'#3#8#1#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3#152#0#3't'
|
||||
+'op'#3#197#0#0#9'TMenuItem'#9'MenuItem1'#6'Action'#7#20'actOptimizeWidthCol1'
|
||||
+#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'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...'#18'DisableIfNoHa'
|
||||
+'ndler'#9#9'OnExecute'#7#19'actCalcTotalExecute'#0#0#7'TAction'#26'actOptimi'
|
||||
+'zeColumnsWidthAll'#7'Caption'#6#25'Optimize width for all...'#18'DisableIfN'
|
||||
+'oHandler'#9#9'OnExecute'#7'!actOptimizeColumnsWidthAllExecute'#0#0#7'TActio'
|
||||
+'n'#20'actOptimizeWidthCol1'#7'Caption'#6#17'Optimize width...'#18'DisableIf'
|
||||
,'NoHandler'#9#9'OnExecute'#7#27'actOptimizeWidthCol1Execute'#0#0#0#0
|
||||
]);
|
||||
|
@ -6,7 +6,7 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, rxmemds,
|
||||
DB, rxdbgrid, ExtCtrls, Buttons, Menus, ActnList;
|
||||
DB, rxdbgrid, ExtCtrls, Buttons, Menus, ActnList, StdCtrls;
|
||||
|
||||
type
|
||||
|
||||
@ -19,6 +19,7 @@ type
|
||||
ActionList1: TActionList;
|
||||
Button1: TButton;
|
||||
Button2: TButton;
|
||||
CheckBox1: TCheckBox;
|
||||
Datasource1: TDatasource;
|
||||
MenuItem1: TMenuItem;
|
||||
MenuItem2: TMenuItem;
|
||||
@ -28,12 +29,20 @@ type
|
||||
PopupMenu1: TPopupMenu;
|
||||
RxDBGrid1: TRxDBGrid;
|
||||
RxMemoryData1: TRxMemoryData;
|
||||
RxMemoryData1Developer1: TStringField;
|
||||
RxMemoryData1ID1: TLongintField;
|
||||
RxMemoryData1NAME1: TStringField;
|
||||
RxMemoryData1PRICE1: TFloatField;
|
||||
procedure actCalcTotalExecute(Sender: TObject);
|
||||
procedure actOptimizeColumnsWidthAllExecute(Sender: TObject);
|
||||
procedure actOptimizeWidthCol1Execute(Sender: TObject);
|
||||
procedure CheckBox1Change(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure RxDBGrid1Filtred(Sender: TObject);
|
||||
procedure RxMemoryData1FilterRecordEx(DataSet: TDataSet; var Accept: Boolean
|
||||
);
|
||||
private
|
||||
{ private declarations }
|
||||
procedure DoFillFilters;
|
||||
public
|
||||
{ public declarations }
|
||||
end;
|
||||
@ -48,13 +57,62 @@ implementation
|
||||
procedure TRxDBGridMainForm.FormCreate(Sender: TObject);
|
||||
begin
|
||||
RxMemoryData1.Open;
|
||||
RxMemoryData1.AppendRecord([1, 'Lazarus 0.9.23', 0]);
|
||||
RxMemoryData1.AppendRecord([2, 'Delphi 7.0 Prof', 990]);
|
||||
RxMemoryData1.AppendRecord([3, 'Open Office 2.2.0', 0]);
|
||||
RxMemoryData1.AppendRecord([4, 'Microsof Office', 150]);
|
||||
RxMemoryData1.AppendRecord([1, 'Lazarus 0.9.23', 0, 'Open source']);
|
||||
RxMemoryData1.AppendRecord([2, 'Delphi 7.0 Prof', 990, 'Borland']);
|
||||
RxMemoryData1.AppendRecord([3, 'Open Office 2.2.0', 0, 'Open source']);
|
||||
RxMemoryData1.AppendRecord([4, 'Microsoft Office', 150, 'Microsoft']);
|
||||
RxMemoryData1.AppendRecord([5, 'Microsoft Windows 95', 50, 'Microsoft']);
|
||||
RxMemoryData1.AppendRecord([6, 'Microsoft Windows 98', 90, 'Microsoft']);
|
||||
RxMemoryData1.AppendRecord([7, 'Microsoft Windows ME', 90, 'Microsoft']);
|
||||
RxMemoryData1.AppendRecord([8, 'Microsoft Windows NT 4.0', 250, 'Microsoft']);
|
||||
RxMemoryData1.AppendRecord([9, 'Microsoft Windows 2000', 150, 'Microsoft']);
|
||||
RxMemoryData1.AppendRecord([10, 'Microsoft Windows XP', 130, 'Microsoft']);
|
||||
RxMemoryData1.AppendRecord([11, 'Microsoft Windows Vista', 180, 'Microsoft']);
|
||||
DoFillFilters;
|
||||
RxMemoryData1.First;
|
||||
RxDBGrid1.CalcStatTotals; //fix error in GotoBookmark
|
||||
end;
|
||||
|
||||
procedure TRxDBGridMainForm.RxDBGrid1Filtred(Sender: TObject);
|
||||
begin
|
||||
RxMemoryData1.First;
|
||||
end;
|
||||
|
||||
procedure TRxDBGridMainForm.RxMemoryData1FilterRecordEx(DataSet: TDataSet;
|
||||
var Accept: Boolean);
|
||||
var
|
||||
i:integer;
|
||||
begin
|
||||
Accept:=true;
|
||||
for i:=0 to RxDBGrid1.Columns.Count-1 do
|
||||
begin
|
||||
with TRxColumn(RxDBGrid1.Columns[i]) do
|
||||
if (Filter.Value<>'') and (Filter.Value<>Field.AsString) then
|
||||
begin
|
||||
Accept:=false;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRxDBGridMainForm.DoFillFilters;
|
||||
var
|
||||
C:TRxColumn;
|
||||
i:integer;
|
||||
begin
|
||||
RxMemoryData1.First;
|
||||
while not RxMemoryData1.EOF do
|
||||
begin
|
||||
for i:=0 to RxDBGrid1.Columns.Count-1 do
|
||||
begin
|
||||
C:=TRxColumn(RxDBGrid1.Columns[i]);
|
||||
if C.Filter.ValueList.IndexOf(C.Field.AsString)<0 then
|
||||
C.Filter.ValueList.Add(C.Field.AsString);
|
||||
end;
|
||||
RxMemoryData1.Next;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRxDBGridMainForm.actCalcTotalExecute(Sender: TObject);
|
||||
begin
|
||||
RxDBGrid1.CalcStatTotals; //fix error in GotoBookmark
|
||||
@ -70,6 +128,15 @@ begin
|
||||
TRxColumn(RxDBGrid1.SelectedColumn).OptimizeWidth;
|
||||
end;
|
||||
|
||||
procedure TRxDBGridMainForm.CheckBox1Change(Sender: TObject);
|
||||
begin
|
||||
if CheckBox1.Checked then
|
||||
RxDBGrid1.OptionsRx:=RxDBGrid1.OptionsRx + [rdgFilter]
|
||||
else
|
||||
RxDBGrid1.OptionsRx:=RxDBGrid1.OptionsRx - [rdgFilter];
|
||||
RxMemoryData1.Filtered:=CheckBox1.Checked;
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
{$I rxdbgridmainunit.lrs}
|
||||
|
Binary file not shown.
@ -1,3 +1,13 @@
|
||||
12.08.2007 - version 1.1.4.93
|
||||
+ in TRxDBComboBox publishe any property
|
||||
+ in TRxDBLookupCombo add event OnGetGridCellProps
|
||||
+ in rx.inc new define
|
||||
RXDBGRID_OPTIONS_WO_CANCEL_ON_EXIT
|
||||
- in RxDBGrid fix error lose focuse after close filte list
|
||||
+ in demo for RxDBGrid add demos ¤for visual filtring data
|
||||
+ add new component - TAutoPanel ( Dmitry V. Bolshakov) -
|
||||
doc ifn folder auto_panel_doc
|
||||
+ in property OptionsRX add new flag - rdgMrOkOnDblClik
|
||||
25.06.2007 - version 1.1.3.86
|
||||
- fix error in TRxMemoryData.SortOnFields
|
||||
+ add sorting in RxDBGrid for TRxMemoryData
|
||||
|
@ -1,3 +1,18 @@
|
||||
12.08.2007 - версия 1.1.4.93
|
||||
+ В TRxDBComboBox опубликованы недостающие поля
|
||||
+ В TRxDBLookupCombo добавлено обработчик OnGetGridCellProps
|
||||
- позволяет задавать при отрисовке фон в выпадающем списке
|
||||
+ В rx.inc ввёл новую дерективу компиляции
|
||||
RXDBGRID_OPTIONS_WO_CANCEL_ON_EXIT
|
||||
если она определени - то в свойстве TRxDbGrid.Options выключается флаг
|
||||
dgCancelOnExit (см. пункт 5 из readmy.txt)
|
||||
- В RxDBGrid исправлена ошибка потери фокуса после закрытия списка фильтра
|
||||
+ В примере на RxDBGrid добавлен промер на визуальную фильтрацию данных
|
||||
+ Добавлен компонент TAutoPanel (автор Dmitry V. Bolshakov) -
|
||||
документация в папке auto_panel_doc
|
||||
+ В свойстве OptionsRX добавлен новый флаг - rdgMrOkOnDblClik
|
||||
при его установке при двойном нажатии на RxDbGrid форме, которой принадлежит
|
||||
RxDbGrid присиваивается ModalResult:=mrOk;
|
||||
25.06.2007 - версия 1.1.3.86
|
||||
- Исправлена ошибка в методе TRxMemoryData.SortOnFields
|
||||
+ Добавлена поддержка сортировок из RxDBGrid на TRxMemoryData
|
||||
|
@ -1,184 +0,0 @@
|
||||
12.01.2006 - версия 1.0.12.38
|
||||
+ в RxDbGrid в заголовке колонки добавлено свойство Orientation - отвечает за
|
||||
направление отрисовки текста в заголовке столбца
|
||||
+ добавлена демка для демонстрацииотрисовки текста вертикально (под углом 90
|
||||
градусов)
|
||||
21.12.2005
|
||||
+ в RxDbGrid добавлено свойство AllowedOperation - для запрета выплнения некоторых
|
||||
операций
|
||||
+ в RxDbGrid доработан обработчик события OnGetCellProps
|
||||
+ в TRxMemoryData введено свойство OnFilterRecordEx - временно, пока в TDataSet
|
||||
не реализуют работу свойства OnFilterRecord
|
||||
16.12.2005 - версия 1.0.11.35
|
||||
+ доработано поведение TToolbarButton для коректной работы
|
||||
в последних сборках Lazarus
|
||||
+ исправлен регистр в названиях некоторых модулей
|
||||
+ пробная сборка под Linux
|
||||
27.11.2005 - версия 1.0.11.34
|
||||
- TToolPanel - исправлена ошибка сохранения свойств панели при
|
||||
редактировании её в runtime
|
||||
22.10.2005 - версия 1.0.10.33
|
||||
+ TRxLabel - перенесён компонент
|
||||
+ TSecretPanel - перенесён компонент
|
||||
- TRxMemoryData - внесён код, обходящий ошибку востановления свойства FieldDefs
|
||||
в модуле DB - работает вроде теперь всё правильно
|
||||
+ TRxLoginDialog - начат перенесён
|
||||
- TRxDBComboBox - небольшой багфикс
|
||||
15.10.2005 - версия 1.0.9.30
|
||||
+ TRxCustomDBLookupCombo - Улучшена отрисовка
|
||||
(старый стиль отрисовки будет при включённом Flat)
|
||||
+ TRxCustomDBLookupCombo - При нажатии клавишы ESC поле очищается (метод DataField.Clear)
|
||||
- TRxCustomDBLookupCombo - Исправлена ошибка отрисовки пустого значения DataField в режиме
|
||||
DisplayAllFields - отображается значение свойства EmptyValue
|
||||
- TRxCustomDBLookupCombo - Исправлена ошибка открытия списка допустимых значений при
|
||||
пустом DataField (список стоял на последней записи)
|
||||
- TRxCustomDBLookupCombo - исправлен расчёт высоты выпадающего списка в зависимости
|
||||
от значения свойства DropDownCount
|
||||
- TRxCustomDBLookupCombo - исправлен выбор значения в выпадающем спсике нажатием
|
||||
клавишы Enter
|
||||
+ TRxMemoryData - Введён код для обхода глюка Lazarus с не корректным созданием полей
|
||||
по данным FieldDefs, которые были созданы в Design-time
|
||||
+ TRxMemoryData - реализован редактор компоненты - копия струтктуры из другого
|
||||
DataSet-а
|
||||
+ TRxDBGrid - подключен редактор свойства FieldName у колонки
|
||||
+ TRxDBGrid - реализована возможность подстановки значений для отображения
|
||||
через свойства KeyList и PickList (аналогично TRxDBComboBox)
|
||||
10.10.2005
|
||||
- Исправлена ошибка при рисовании изображения в RxDbGrid из ImageList,
|
||||
также операция немного ускорена
|
||||
- исправлена ошибка при изменении ширины колонки (деление на 0)
|
||||
+ начата работа над сохранением состояния колонок RxDbGrid через FormStorage
|
||||
- Небольшой багофикс при работе с изображениями в TToolPanel
|
||||
+ Добавил компонент TPageManager
|
||||
+ Написал новый компонент TRxAppIcon - это для тех кто не хочет возиться с
|
||||
ресурсами - в момент запуска приложению будет сопоставлена указанная иконка.
|
||||
т.к. она хранится не в стандартном виндовом ресурсе - поэтому проводник
|
||||
будет показывать на приложении обычную иконку - но в момент запуска
|
||||
появится указанная. Работает только под Windows - если кто знает как это
|
||||
делается в других системах - допишите.
|
||||
Когда в лазаре доделают нормальную работу с иконками - компоненту надо
|
||||
переписать - а может лазарь научится создавать стандартный ресурс виндовый
|
||||
для программы - тогда в этой компоненте надобность вобще отпадёт
|
||||
|
||||
08.10.2005
|
||||
+ Окно настройки теперь вегда сверху
|
||||
+ Для более тонкой настройки отображения кнопок добави в опциях тулбара
|
||||
два дополнительных флага - tpGlyphPopup, tpCaptionPopup
|
||||
- небольшие багофиксы
|
||||
+ реализована работа с изображениями в RxDbGrid через ImageList (см. readmy.txt)
|
||||
+ Добавлен компонент TRXXPManifest - работает только под Windows -
|
||||
поддержка XP манифеста
|
||||
05.10.2005
|
||||
+ убрал свойстов Flat, TransparentBtn
|
||||
+ Добавил свойство Options, включающее tpFlatBtns, tpTransparentBtns
|
||||
+ Добавил включение окна настройки подвойному клику на панели
|
||||
правой кнопкой мышки с зажатым Ctrl
|
||||
- исправл баг множественного открытия окна настройки панели
|
||||
+ у TToolbarItem добавил свойство Tag
|
||||
|
||||
04.10.2005
|
||||
+ в TToolPanel пофиксил баг не верного начального размера кнопки
|
||||
+ Добавлена возможность прорисовки кнопок в стиле WindowsXP
|
||||
+ При в стиле Flat и WindowsXP при наведении курсора на кнопку
|
||||
она приподнимается для лучшего визуализации
|
||||
- т.к. TImageList.Draw не умеет рисовать запроещённое состояние
|
||||
изоражения при задисабливании Action не дисаблится картинка
|
||||
также из-за этого нет возможности сделать изображение с тенью
|
||||
- вылазиет баг в лазаре если в дизайнере удалить напрямую с панели
|
||||
кнопку (не через Items) - ещё не знаю как в лазаре в дизайнере
|
||||
для некоторых элементов запретить удаление
|
||||
+ Добавил демку для TToolPanel
|
||||
|
||||
03.10.2005
|
||||
+ перевёл все имена файлов к нижнему регистру
|
||||
+ в TToolPanel пофиксил некторые баги
|
||||
+ работает окно настройки панели
|
||||
+ Поддерживается DropDownMenu в стиле полного нажатия кнопки
|
||||
+ скрытие не нужных кнопок (настройка в run-time)
|
||||
|
||||
|
||||
02.10.2005 (beta)
|
||||
+ Начата реализация (полностью своя) TToolPanel - аналог RxToolbar
|
||||
по функциональности похоже на стандартный ToolBar - точно
|
||||
также работает через Actions (для добавления кнопок использовать метод Items)
|
||||
полностью моя перерисовка кнопок - нормальный внешний вид.
|
||||
работает:
|
||||
+ кустомизация расположения кнопок и внешнего вида в run-time
|
||||
+ сохранение во внешний конфигурационный файл через propstorage
|
||||
будут реализованы:
|
||||
- DropDownMenu - в зависимости от стиля кнопки либо выпадает
|
||||
при нажатии на кнопку, либо будет отдельнная облясть кнопки (суб.кнопка) для
|
||||
вызова меню
|
||||
- скрытие ненужных кнопок (настройка в run-time)
|
||||
- стили отображения (сейчас стандарт Win9x, Flat) - добавляю как в WinXP
|
||||
- мастер создания панели в DesignTime в лазаре
|
||||
змеченые глюки
|
||||
- не всегда коректно востанавливается при ширина кнопок
|
||||
|
||||
принимаю заявки на функциональность и ошибки
|
||||
|
||||
30.10.2005
|
||||
+ перенёс
|
||||
+ перенёс RxDice, RxSwith, TRxDBComboBox
|
||||
+ Разбил на 2 закладки - RX и RX DBAware
|
||||
- исправил баг с начальным размером у TRxDBLookupCombo
|
||||
|
||||
|
||||
28.10.2005
|
||||
+ практически работает Currency edit (не проверил под линухом)
|
||||
- из-за ошибки в функиции FormatFloat из FCL нельзя использовать в строке
|
||||
форматирования одинарные или двойные кавычки - повесится
|
||||
19.10.2005
|
||||
+ TRxMemoryData - работает почти полностью - нет поддержки blob - надо разбирать
|
||||
+ начал перенос Currency edit
|
||||
+ правил ошибки
|
||||
- ещё не всё проверил в линуксе - теоретически должно собраться и работать
|
||||
05.10.2005
|
||||
+ Добавлен TRxDBGrid - написан по "мотивам оригинального, ещё есть что переносить
|
||||
самое главное, почему его начал переносить - захотелось сделать сортировку
|
||||
наборов данных как в DBGridEh из EhLib. Я вышел с предложением на
|
||||
Jesus Reyes (автор DBGrid-а о добавлении функциональности) - он сказал, что нефиг
|
||||
превращать стандартный компонент в новогоднюю ёлку. Поэтому стал сам доделывать
|
||||
наследника.
|
||||
Сейчас работает многострочные заголовки, подерживается нажатие на заголовок
|
||||
как на кнопку с опциональным отображением символа сортировки (соответсвующее событие)
|
||||
|
||||
также добавил механизм автосортировки см. файл exSortFB.pas - тут наиболее лаконично
|
||||
всё. Кратко - для необходимых типов источноков данных
|
||||
пишется обёртка (наследник от TExDBGridSortEngine) который умеет в этом
|
||||
источнике данных переупорядочивать записи. Мой TFBDataSet (работаю с FireBird)
|
||||
умеет сам в локальном кэше сортировать запис - поэтому там всё просто.
|
||||
exsortmds.pas - этот модуль для сортировки данных в стандартном MemDS
|
||||
немного кривовато написано - практически нет механизмов добраться до внутреннего
|
||||
буфера данных (кстати в MemDS есть баг позиционирования курсора на 1-ю запись)
|
||||
|
||||
- TRxMemoryData - вроде всё скомпилировалось практически без правки - но чтото при
|
||||
добавлении записи - ошибка (подозреваю не совместимость DataSet-а из дельфей и Лазаря)
|
||||
надо разобраться. Стандартный MemDS ограничен - нет блоб и прочего.
|
||||
31.09.2005
|
||||
+ Add component TFolderLister - это моя разработка - на основе неё добавлю
|
||||
ещё компонент для построения меню, содержащее отчёты для LazReport-a
|
||||
(аналог у меня в дельфях моей также разработки)
|
||||
07.01.2005
|
||||
i'm port next RX components:
|
||||
TDBDateEdit - не даёт вводить значения руками - наследство от оригинального
|
||||
TDateEdit
|
||||
TRxDBCalcEdit
|
||||
TRXLookupEdit,
|
||||
TRxDBLookupCombo - тут баг - при кидании на форму не коректно устанавливаются
|
||||
размеры, приходится руками ресайзить - когда нить доделаю - или кто сможет -
|
||||
помогайте.
|
||||
|
||||
|
||||
and next modules:
|
||||
DateUtil.pas
|
||||
DbUtils.pas
|
||||
rxdconst.pas
|
||||
RXStrutils.pas
|
||||
VCLUtils.pas
|
||||
|
||||
жду замечаний и предложений
|
||||
Лагунов Алексей (alexs)
|
||||
|
||||
ALEXS75-на-YANDEX-точка-RU
|
||||
|
@ -35,4 +35,17 @@
|
||||
4. Для нормальной работы используйте последнюю версию Lazarus
|
||||
сборкой не ниже 0.9.19 (10151) - появилась в SVN 01.11.2006
|
||||
|
||||
5. Вопросы задавать мылом или на форуме FreePascal.ru (предпочтительней)
|
||||
5. Замечание о RXDBGRID_OPTIONS_WO_CANCEL_ON_EXIT и флаге dgCancelOnExit в
|
||||
TRxDbGrid.Options
|
||||
в случае использования следующей схемы под линуксом:
|
||||
В форму ложим список TRxDbGrid с открытым набором данных и отдельную кнопку (TSpeedButton) на
|
||||
добавление новой записи в набор данных с вызовом другой модальной формы для редактирования
|
||||
добовляемых значение
|
||||
при открытии формы редактирования набор данных, связанный с TRxDbGrid переходит в состояние
|
||||
редактирования
|
||||
это поведени наблюдается только по Linux
|
||||
|
||||
объяснение заключается в том что при потере фокуса TDbGrid и его наследниеи вызывают
|
||||
метод Cancel
|
||||
|
||||
6. Вопросы задавать мылом или на форуме FreePascal.ru (предпочтительней)
|
||||
|
@ -1,2 +1,2 @@
|
||||
del rx.lrs
|
||||
C:\lazarus\tools\lazres.exe rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm
|
||||
C:\lazarus\tools\lazres.exe rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm
|
||||
|
@ -12,7 +12,8 @@ procedure Register;
|
||||
implementation
|
||||
uses PropEdits, dbdateedit, rxlookup, folderlister, rxdbgrid, rxmemds, duallist,
|
||||
curredit, rxswitch, rxdice, rxdbcomb, rxtoolbar, rxxpman, PageMngr, RxAppIcon,
|
||||
Dialogs, ComponentEditors, seldsfrm, DBPropEdits, DB, rxctrls, RxLogin, RxCustomChartPanel;
|
||||
Dialogs, ComponentEditors, seldsfrm, DBPropEdits, DB, rxctrls, RxLogin,
|
||||
RxCustomChartPanel, AutoPanel;
|
||||
|
||||
type
|
||||
|
||||
@ -209,6 +210,10 @@ begin
|
||||
RegisterComponents('RX',[TRxChart]);
|
||||
end;
|
||||
|
||||
procedure RegisterAutoPanel;
|
||||
begin
|
||||
RegisterComponents('RX',[TAutoPanel]);
|
||||
end;
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
@ -231,6 +236,8 @@ begin
|
||||
RegisterUnit('rxdbgrid', @RegisterRxDbGrid);
|
||||
RegisterUnit('rxmemds', @RegisterRxMemDS);
|
||||
RegisterUnit('rxdbcomb', @RegisterRxDBComb);
|
||||
RegisterUnit('AutoPanel', @RegisterAutoPanel);
|
||||
|
||||
|
||||
//Component Editors
|
||||
RegisterComponentEditor(TRxAppIcon, TRxAppIconEditor);
|
||||
|
@ -5,3 +5,4 @@
|
||||
{$DEFINE HASVARIANT}
|
||||
{.$DEFINE ENABLE_Child_Defs}
|
||||
{$DEFINE NEW_STYLE_TITLE_ALIGNMENT_RXDBGRID}
|
||||
{$DEFINE RXDBGRID_OPTIONS_WO_CANCEL_ON_EXIT}
|
||||
|
@ -267,3 +267,21 @@ LazarusResources.Add('TRXLABEL','XPM',[
|
||||
+'........................",'#10'"........................",'#10'"...........'
|
||||
+'.............",'#10'"........................"};'#10
|
||||
]);
|
||||
|
||||
LazarusResources.Add('tautopanel','XPM',[
|
||||
'/* XPM */'#10'static char *tautopanel_xpm[] = {'#10'/* width height num_colo'
|
||||
+'rs chars_per_pixel */'#10'" 24 24 8 1",'#10'/* colo'
|
||||
+'rs */'#10'"` c #808000",'#10'". c #808080",'#10'"# c #ffffff",'#10'"a c #ff'
|
||||
+'0000",'#10'"b c #000000",'#10'"c c #000000",'#10'"d c #000000",'#10'"e c #0'
|
||||
+'00000",'#10'/* pixels */'#10'"````````````````````````",'#10'"`````````````'
|
||||
+'```````````",'#10'"``...................```",'#10'"``.#################`#``'
|
||||
+'",'#10'"``.#````````````````.#``",'#10'"``.#````````````````.#``",'#10'"``.'
|
||||
+'#````````````````.#``",'#10'"``.#aa``````````````.#``",'#10'"``.a``a```````'
|
||||
+'a`````.#``",'#10'"``.a``a```````a`````.#``",'#10'"``.a``a`a``a`aaa```aa#``"'
|
||||
+','#10'"``.aaaa`a``a``a```a`.a``",'#10'"``.a``a`a``a``a```a`.a``",'#10'"``.a'
|
||||
+'``a`a``a``a```a`.a``",'#10'"``.a``a`a``a``a```a`.a``",'#10'"``.a``a``aaa``a'
|
||||
+'a```aa#``",'#10'"``.#````````````````.#``",'#10'"``.#````````````````.#``",'
|
||||
+#10'"``.#````````````````.#``",'#10'"``.#````````````````.#``",'#10'"``.`...'
|
||||
+'..............#``",'#10'"```###################``",'#10'"``````````````````'
|
||||
+'``````",'#10'"````````````````````````"'#10'};'#10
|
||||
]);
|
||||
|
@ -83,6 +83,10 @@ type
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
published
|
||||
property Anchors;
|
||||
property ArrowKeysTraverseList;
|
||||
property AutoDropDown;
|
||||
property BorderSpacing;
|
||||
property Style; { must be published before Items }
|
||||
property Color;
|
||||
property Ctl3D;
|
||||
@ -94,11 +98,12 @@ type
|
||||
property Enabled;
|
||||
property EnableValues: Boolean read FEnableValues write SetEnableValues;
|
||||
property Font;
|
||||
property Anchors;
|
||||
property Constraints;
|
||||
property DragKind;
|
||||
property ItemHeight;
|
||||
property Items;
|
||||
property ItemWidth;
|
||||
property MaxLength default -1;
|
||||
property ParentColor;
|
||||
property ParentCtl3D;
|
||||
property ParentFont;
|
||||
|
@ -11,11 +11,14 @@ uses
|
||||
|
||||
type
|
||||
TSortMarker = (smNone, smDown, smUp);
|
||||
|
||||
TGetBtnParamsEvent = procedure (Sender: TObject; Field: TField;
|
||||
AFont: TFont; var Background: TColor; var SortMarker: TSortMarker;
|
||||
IsDown: Boolean) of object;
|
||||
|
||||
TGetCellPropsEvent = procedure (Sender: TObject; Field: TField;
|
||||
AFont: TFont; var Background: TColor) of object;
|
||||
|
||||
TRxDBGridAllowedOperation = (aoInsert, aoUpdate, aoDelete, aoAppend);
|
||||
TRxDBGridAllowedOperations = set of TRxDBGridAllowedOperation;
|
||||
|
||||
@ -30,7 +33,8 @@ type
|
||||
rdgFooterRows,
|
||||
rdgXORColSizing,
|
||||
rdgFilter,
|
||||
rdgMultiTitleLines
|
||||
rdgMultiTitleLines,
|
||||
rdgMrOkOnDblClik
|
||||
);
|
||||
|
||||
TOptionsRx = set of TOptionRx;
|
||||
@ -274,6 +278,7 @@ type
|
||||
procedure FFilterListEditorOnChange(Sender: TObject);
|
||||
procedure FFilterListEditorOnCloseUp(Sender: TObject);
|
||||
procedure InternalOptimizeColumnsWidth(AColList:TList);
|
||||
function IsDefaultRowHeightStored:boolean;
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
@ -330,7 +335,7 @@ type
|
||||
property Constraints;
|
||||
property DataSource;
|
||||
property DefaultDrawing;
|
||||
property DefaultRowHeight default 18;
|
||||
property DefaultRowHeight stored IsDefaultRowHeightStored default 18 ;
|
||||
//property DragCursor;
|
||||
//property DragKind;
|
||||
//property DragMode;
|
||||
@ -1269,7 +1274,17 @@ begin
|
||||
inherited MouseDown(Button, Shift, X, Y);
|
||||
end
|
||||
else
|
||||
begin
|
||||
if rdgMrOkOnDblClik in FOptionsRx then
|
||||
begin
|
||||
if (Cell.Y > 0) and (Cell.X >= ord(dgIndicator in Options)) and (ssDouble in Shift) then
|
||||
begin
|
||||
if Owner is TCustomForm then
|
||||
TCustomForm(Owner).ModalResult:=mrOk;
|
||||
end;
|
||||
end;
|
||||
inherited MouseDown(Button, Shift, X, Y);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.MouseUp(Button: TMouseButton; Shift: TShiftState; X,
|
||||
@ -1466,6 +1481,7 @@ procedure TRxDBGrid.FFilterListEditorOnCloseUp(Sender: TObject);
|
||||
begin
|
||||
FFilterListEditor.Hide;
|
||||
FFilterListEditor.Changed;
|
||||
SetFocus;
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.InternalOptimizeColumnsWidth(AColList: TList);
|
||||
@ -1510,6 +1526,11 @@ begin
|
||||
FreeMem(WA, SizeOf(Integer) * AColList.Count);
|
||||
end;
|
||||
|
||||
function TRxDBGrid.IsDefaultRowHeightStored: boolean;
|
||||
begin
|
||||
Result:=DefaultRowHeight = Canvas.TextHeight('W');
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.CalcStatTotals;
|
||||
var
|
||||
P:TBookmark;
|
||||
@ -1593,7 +1614,10 @@ end;
|
||||
constructor TRxDBGrid.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
|
||||
{$IFDEF RXDBGRID_OPTIONS_WO_CANCEL_ON_EXIT}
|
||||
Options:=Options - [dgCancelOnExit];
|
||||
{$ENDIF}
|
||||
|
||||
FMarkerUp := TBitmap.Create;
|
||||
FMarkerUp.Handle := CreatePixmapIndirect(@IMGMarkerUp[0],
|
||||
GetSysColor(COLOR_BTNFACE));
|
||||
@ -2099,9 +2123,9 @@ end;
|
||||
initialization
|
||||
ExDBGridSortEngineList:=TStringList.Create;
|
||||
ExDBGridSortEngineList.Sorted:=true;
|
||||
|
||||
finalization
|
||||
while (ExDBGridSortEngineList.Count>0) do begin
|
||||
while (ExDBGridSortEngineList.Count>0) do
|
||||
begin
|
||||
ExDBGridSortEngineList.Objects[0].Free;
|
||||
ExDBGridSortEngineList.Delete(0);
|
||||
end;
|
||||
|
@ -144,6 +144,7 @@ type
|
||||
function GetFlat: Boolean;
|
||||
function GetGlyph: TBitmap;
|
||||
function GetNumGlyphs: Integer;
|
||||
function GetOnGetGridCellProps: TGetCellPropsEvent;
|
||||
function GetPopupVisible: boolean;
|
||||
procedure SetButtonNeedsFocus(const AValue: Boolean);
|
||||
procedure SetButtonWidth(const AValue: Integer);
|
||||
@ -161,6 +162,7 @@ type
|
||||
procedure SetLookupField(const AValue: string);
|
||||
procedure SetLookupSource(const AValue: TDataSource);
|
||||
procedure SetNumGlyphs(const AValue: Integer);
|
||||
procedure SetOnGetGridCellProps(const AValue: TGetCellPropsEvent);
|
||||
procedure SetPopUpFormOptions(const AValue: TPopUpFormOptions);
|
||||
procedure SetReadOnly(const AValue: boolean);
|
||||
function StoreEmpty: boolean;
|
||||
@ -220,6 +222,8 @@ type
|
||||
property LookupDisplayIndex: Integer read FLookupDisplayIndex write SetLookupDisplayIndex default 0;
|
||||
property LookupField: string read FLookupField write SetLookupField;
|
||||
property LookupSource: TDataSource read GetLookupSource write SetLookupSource;
|
||||
property OnGetGridCellProps: TGetCellPropsEvent read GetOnGetGridCellProps
|
||||
write SetOnGetGridCellProps;
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
@ -267,6 +271,7 @@ type
|
||||
property OnMouseMove;
|
||||
property OnMouseUp;
|
||||
property OnStartDrag;
|
||||
property OnGetGridCellProps;
|
||||
property ParentColor;
|
||||
property ParentCtl3D;
|
||||
property ParentFont;
|
||||
@ -296,7 +301,7 @@ uses VCLUtils, Math;
|
||||
function CreateArrowBitmap:TBitmap;
|
||||
begin
|
||||
Result:=Graphics.TBitmap.Create;
|
||||
Result.LoadFromLazarusResource('btn_downarrow');
|
||||
Result.LoadFromLazarusResource('rxbtn_downarrow');
|
||||
end;
|
||||
|
||||
{ TCustomDBLookupEdit }
|
||||
@ -604,6 +609,11 @@ begin
|
||||
else Result:=0;
|
||||
end;
|
||||
|
||||
function TRxCustomDBLookupCombo.GetOnGetGridCellProps: TGetCellPropsEvent;
|
||||
begin
|
||||
Result:=FPopUpFormOptions.OnGetCellProps;
|
||||
end;
|
||||
|
||||
function TRxCustomDBLookupCombo.GetPopupVisible: boolean;
|
||||
begin
|
||||
Result:=Assigned(FRxPopUpForm);
|
||||
@ -735,6 +745,12 @@ begin
|
||||
FButton.NumGlyphs:=AValue;
|
||||
end;
|
||||
|
||||
procedure TRxCustomDBLookupCombo.SetOnGetGridCellProps(
|
||||
const AValue: TGetCellPropsEvent);
|
||||
begin
|
||||
FPopUpFormOptions.OnGetCellProps:=AValue;
|
||||
end;
|
||||
|
||||
procedure TRxCustomDBLookupCombo.SetPopUpFormOptions(
|
||||
const AValue: TPopUpFormOptions);
|
||||
begin
|
||||
@ -1323,4 +1339,10 @@ begin
|
||||
FDataControl.LookupDataSetChanged;
|
||||
end;
|
||||
|
||||
initialization
|
||||
LazarusResources.Add('rxbtn_downarrow','XPM',[
|
||||
'/* XPM */'#13#10'static char * btn_downarrow_xpm[] = {'#13#10'"5 3 2 1",'#13
|
||||
+#10'" '#9'c None",'#13#10'".'#9'c #000000",'#13#10'".....",'#13#10'" ... ",'
|
||||
+#13#10'" . "};'#13#10
|
||||
]);
|
||||
end.
|
||||
|
@ -23,8 +23,8 @@ translate to Lazarus by alexs in 2005 - 2007
|
||||
"/>
|
||||
<License Value="free ware
|
||||
"/>
|
||||
<Version Major="1" Minor="1" Release="3" Build="86"/>
|
||||
<Files Count="37">
|
||||
<Version Major="1" Minor="1" Release="4" Build="93"/>
|
||||
<Files Count="38">
|
||||
<Item1>
|
||||
<Filename Value="rxlookup.pas"/>
|
||||
<UnitName Value="rxlookup"/>
|
||||
@ -174,6 +174,10 @@ translate to Lazarus by alexs in 2005 - 2007
|
||||
<Filename Value="rxsortmemds.pas"/>
|
||||
<UnitName Value="rxsortmemds"/>
|
||||
</Item37>
|
||||
<Item38>
|
||||
<Filename Value="autopanel.pas"/>
|
||||
<UnitName Value="AutoPanel"/>
|
||||
</Item38>
|
||||
</Files>
|
||||
<Type Value="RunAndDesignTime"/>
|
||||
<RequiredPkgs Count="4">
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ This file was automatically created by Lazarus. Do not edit!
|
||||
This source is only used to compile and install the package.
|
||||
{ Этот файл был автоматически создан Lazarus. Не редактировать!
|
||||
Исходный код используется только для компиляции и установки пакета.
|
||||
}
|
||||
|
||||
unit rxnew;
|
||||
@ -12,7 +12,7 @@ uses
|
||||
duallist, boxprocs, tooledit, rxswitch, rxdice, rxdbcomb, rxtoolbar,
|
||||
rxtbrsetup, fduallst, rxxpman, pagemngr, rxappicon, seldsfrm, rxctrls,
|
||||
rxlogin, rxdbgrid_findunit, rxdbgrid_columsunit, rxpopupunit,
|
||||
rxcustomchartpanel, rxsortmemds, LazarusPackageIntf;
|
||||
rxcustomchartpanel, rxsortmemds, AutoPanel, LazarusPackageIntf;
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -117,6 +117,7 @@ type
|
||||
FColumns: TPopUpFormColumns;
|
||||
FDropDownCount: integer;
|
||||
FDropDownWidth: integer;
|
||||
FOnGetCellProps: TGetCellPropsEvent;
|
||||
FOptions: TPopUpGridOptions;
|
||||
FShowTitles: boolean;
|
||||
FTitleButtons: boolean;
|
||||
@ -144,6 +145,8 @@ type
|
||||
property ShowTitles:boolean read FShowTitles write SetShowTitles default false;
|
||||
property TitleButtons:boolean read FTitleButtons write SetTitleButtons default false;
|
||||
property TitleStyle:TTitleStyle read FTitleStyle write SetTitleStyle default tsLazarus;
|
||||
property OnGetCellProps: TGetCellPropsEvent read FOnGetCellProps
|
||||
write FOnGetCellProps;
|
||||
end;
|
||||
|
||||
{ TPopUpForm }
|
||||
@ -466,6 +469,7 @@ begin
|
||||
FGrid.TitleButtons:=FPopUpFormOptions.TitleButtons;
|
||||
FGrid.TitleStyle:=FPopUpFormOptions.TitleStyle;
|
||||
FGrid.BorderStyle:=FPopUpFormOptions.BorderStyle;
|
||||
FGrid.OnGetCellProps:=FPopUpFormOptions.OnGetCellProps;
|
||||
end;
|
||||
|
||||
{ TPopUpFormOptions }
|
||||
|
Loading…
Reference in New Issue
Block a user