RxFPC:move visual routines to new new module rxdblclutils from rxdbutild

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9367 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75 2024-06-21 06:31:25 +00:00
parent 1f686ef1c9
commit 7097f35473
11 changed files with 404 additions and 373 deletions

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="11"/>
<Version Value="12"/>
<General>
<Flags>
<LRSInOutputDirectory Value="False"/>
<CompatibilityMode Value="True"/>
</Flags>
<MainUnit Value="0"/>
<Title Value="RxDBGrid demo"/>
<ResourceType Value="res"/>
<UseXPManifest Value="True"/>
@ -28,11 +28,14 @@
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T &apos;Lazarus Run Output&apos; -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
<FormatVersion Value="2"/>
<Modes Count="1">
<Mode0 Name="default">
<local>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T &apos;Lazarus Run Output&apos; -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</Mode0>
</Modes>
@ -56,7 +59,7 @@
<MinVersion Major="1" Release="18" Build="56" Valid="True"/>
</Item5>
</RequiredPackages>
<Units Count="78">
<Units Count="80">
<Unit0>
<Filename Value="RxDBGridDemo.lpr"/>
<IsPartOfProject Value="True"/>
@ -71,8 +74,7 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="RxDBGridMainUnit"/>
<TopLine Value="41"/>
<CursorPos X="96" Y="144"/>
<CursorPos X="7" Y="9"/>
<UsageCount Value="131"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@ -475,10 +477,10 @@
</Unit56>
<Unit57>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<IsVisibleTab Value="True"/>
<UnitName Value="RxDBGrid"/>
<EditorIndex Value="1"/>
<TopLine Value="4742"/>
<CursorPos X="21" Y="4768"/>
<TopLine Value="1191"/>
<CursorPos X="12" Y="1211"/>
<UsageCount Value="13"/>
<Bookmarks Count="2">
<Item0 X="3" Y="7325" ID="1"/>
@ -513,7 +515,7 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="RxDBGrid_PopUpFilterUnit"/>
<EditorIndex Value="7"/>
<EditorIndex Value="8"/>
<TopLine Value="152"/>
<CursorPos Y="159"/>
<UsageCount Value="12"/>
@ -538,7 +540,7 @@
</Unit63>
<Unit64>
<Filename Value="../../../rxtools/rxdconst.pas"/>
<EditorIndex Value="5"/>
<EditorIndex Value="6"/>
<TopLine Value="98"/>
<CursorPos X="3" Y="117"/>
<UsageCount Value="11"/>
@ -561,7 +563,7 @@
<Unit67>
<Filename Value="../../../../../lcl/lclproc.pas"/>
<UnitName Value="LCLProc"/>
<EditorIndex Value="6"/>
<EditorIndex Value="7"/>
<TopLine Value="843"/>
<CursorPos Y="862"/>
<UsageCount Value="11"/>
@ -622,7 +624,7 @@
<Unit75>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<UnitName Value="RxDBGridPrintGrid"/>
<EditorIndex Value="3"/>
<EditorIndex Value="4"/>
<TopLine Value="365"/>
<CursorPos X="3" Y="314"/>
<UsageCount Value="11"/>
@ -631,7 +633,7 @@
<Unit76>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<UnitName Value="RxDBGridExportSpreadSheet"/>
<EditorIndex Value="4"/>
<EditorIndex Value="5"/>
<TopLine Value="40"/>
<CursorPos X="3" Y="59"/>
<UsageCount Value="11"/>
@ -639,129 +641,154 @@
</Unit76>
<Unit77>
<Filename Value="../../../rxdb/rxlookup.pas"/>
<EditorIndex Value="2"/>
<EditorIndex Value="3"/>
<TopLine Value="34"/>
<CursorPos X="53" Y="54"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit77>
<Unit78>
<Filename Value="../../../rxdb/rxdbgrid_columsunit.pas"/>
<ComponentName Value="rxDBGridColumsForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<EditorIndex Value="-1"/>
<UsageCount Value="10"/>
</Unit78>
<Unit79>
<Filename Value="../../../rxdb/rxfilterby.pas"/>
<ComponentName Value="rxFilterByForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
<TopLine Value="276"/>
<CursorPos Y="293"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit79>
</Units>
<JumpHistory Count="29" HistoryIndex="28">
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="755" Column="17" TopLine="739"/>
<Caret Line="3876" Column="22" TopLine="3858"/>
</Position1>
<Position2>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="1018" Column="68" TopLine="994"/>
<Caret Line="3883" Column="21" TopLine="3858"/>
</Position2>
<Position3>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3106" Column="17" TopLine="3080"/>
<Caret Line="3887" Column="27" TopLine="3859"/>
</Position3>
<Position4>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3191" Column="18" TopLine="3165"/>
<Caret Line="3899" Column="15" TopLine="3868"/>
</Position4>
<Position5>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3192" Column="25" TopLine="3166"/>
<Caret Line="3908" Column="19" TopLine="3881"/>
</Position5>
<Position6>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3199" Column="18" TopLine="3173"/>
<Caret Line="3910" Column="54" TopLine="3884"/>
</Position6>
<Position7>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3200" Column="25" TopLine="3174"/>
<Caret Line="3917" Column="32" TopLine="3886"/>
</Position7>
<Position8>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3762" Column="15" TopLine="3736"/>
<Caret Line="3923" Column="26" TopLine="3892"/>
</Position8>
<Position9>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3867" Column="15" TopLine="3838"/>
<Caret Line="3926" Column="34" TopLine="3898"/>
</Position9>
<Position10>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="888" Column="15" TopLine="873"/>
<Caret Line="3923" Column="34" TopLine="3897"/>
</Position10>
<Position11>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3864" Column="15" TopLine="3858"/>
<Caret Line="889" Column="35" TopLine="875"/>
</Position11>
<Position12>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3876" Column="22" TopLine="3858"/>
</Position12>
<Position13>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3883" Column="21" TopLine="3858"/>
<Caret Line="889" Column="35" TopLine="864"/>
</Position13>
<Position14>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3887" Column="27" TopLine="3859"/>
<Caret Line="3889" Column="41" TopLine="3863"/>
</Position14>
<Position15>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3899" Column="15" TopLine="3868"/>
<Caret Line="4767" Column="11" TopLine="4743"/>
</Position15>
<Position16>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3908" Column="19" TopLine="3881"/>
<Caret Line="756" Column="16" TopLine="740"/>
</Position16>
<Position17>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3910" Column="54" TopLine="3884"/>
<Caret Line="3909" Column="14" TopLine="3883"/>
</Position17>
<Position18>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3917" Column="32" TopLine="3886"/>
<Caret Line="3925" Column="14" TopLine="3899"/>
</Position18>
<Position19>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3923" Column="26" TopLine="3892"/>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="144" Column="96" TopLine="109"/>
</Position19>
<Position20>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3926" Column="34" TopLine="3898"/>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="146" Column="96" TopLine="111"/>
</Position20>
<Position21>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3923" Column="34" TopLine="3897"/>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="207" Column="81" TopLine="190"/>
</Position21>
<Position22>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="889" Column="35" TopLine="875"/>
<Caret Line="4749" Column="33" TopLine="4742"/>
</Position22>
<Position23>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Filename Value="../../../rxdb/rxfilterby.pas"/>
<Caret Line="97" Column="22" TopLine="89"/>
</Position23>
<Position24>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="889" Column="35" TopLine="864"/>
<Filename Value="../../../rxdb/rxfilterby.pas"/>
<Caret Line="166" Column="3" TopLine="163"/>
</Position24>
<Position25>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3889" Column="41" TopLine="3863"/>
<Filename Value="../../../rxdb/rxfilterby.pas"/>
<Caret Line="109" Column="15" TopLine="80"/>
</Position25>
<Position26>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="4767" Column="11" TopLine="4743"/>
<Filename Value="../../../rxdb/rxfilterby.pas"/>
<Caret Line="293" TopLine="275"/>
</Position26>
<Position27>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="756" Column="16" TopLine="740"/>
<Filename Value="../../../rxdb/rxfilterby.pas"/>
<Caret Line="294" TopLine="275"/>
</Position27>
<Position28>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3909" Column="14" TopLine="3883"/>
<Filename Value="../../../rxdb/rxfilterby.pas"/>
<Caret Line="185" TopLine="167"/>
</Position28>
<Position29>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="3925" Column="14" TopLine="3899"/>
<Filename Value="../../../rxdb/rxfilterby.pas"/>
<Caret Line="187" TopLine="167"/>
</Position29>
<Position30>
<Filename Value="../../../rxdb/rxfilterby.pas"/>
<Caret Line="194" Column="103" TopLine="173"/>
</Position30>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
@ -779,6 +806,9 @@
</SyntaxOptions>
</Parsing>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf3"/>
</Debugging>
<Options>
<Win32>
<GraphicApplication Value="True"/>

View File

@ -2,21 +2,21 @@ object RxDBGridMainForm: TRxDBGridMainForm
Left = 250
Height = 732
Top = 192
Width = 1240
Width = 1612
ActiveControl = Panel1
Caption = 'RxDBGrid Demo'
ClientHeight = 704
ClientWidth = 1240
ClientHeight = 732
ClientWidth = 1612
Menu = MainMenu1
OnCreate = FormCreate
SessionProperties = 'RxDBGridExportSpreadSheet1.FileName;RxDBGridExportSpreadSheet1.OpenAfterExport;RxDBGridExportSpreadSheet1.Options;RxDBGridExportSpreadSheet1.PageName;RxDBGridPrint1.Options;RxDBGridPrint1.Orientation;RxDBGridPrint1.PageMargin;RxDBGridPrint1.ReportTitle;RxDBGridPrint1.ShowColumnHeaderOnAllPage'
ShowHint = True
LCLVersion = '2.1.0.0'
LCLVersion = '3.99.0.0'
OnCreate = FormCreate
object RxDBGrid1: TRxDBGrid
Left = 0
Height = 627
Top = 77
Width = 1240
Height = 666
Top = 66
Width = 1612
ColumnDefValues.BlobText = '(примечание)'
TitleButtons = True
AutoSort = True
@ -260,7 +260,7 @@ object RxDBGridMainForm: TRxDBGridMainForm
item
Glyph.Data = {
C6010000424DC60100000000000036000000280000000A0000000A0000000100
2000000000009001000064000000640000000000000000000000000000000000
2000000000009001000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000414141FF414141FF000000000000
0000000000000000000000000000000000000000000000000000414141FF4141
@ -281,7 +281,7 @@ object RxDBGridMainForm: TRxDBGridMainForm
item
Glyph.Data = {
C6010000424DC60100000000000036000000280000000A0000000A0000000100
2000000000009001000064000000640000000000000000000000000000000000
2000000000009001000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@ -302,7 +302,7 @@ object RxDBGridMainForm: TRxDBGridMainForm
item
Glyph.Data = {
C6010000424DC60100000000000036000000280000000A0000000A0000000100
2000000000009001000064000000640000000000000000000000000000000000
2000000000009001000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000414141FF000000004141
@ -323,7 +323,7 @@ object RxDBGridMainForm: TRxDBGridMainForm
item
Glyph.Data = {
C6010000424DC60100000000000036000000280000000A0000000A0000000100
2000000000009001000064000000640000000000000000000000000000000000
2000000000009001000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@ -344,7 +344,7 @@ object RxDBGridMainForm: TRxDBGridMainForm
item
Glyph.Data = {
76010000424D760100000000000036000000280000000A0000000A0000000100
18000000000040010000640000006400000000000000000000007F7F7F7F7F7F
18000000000040010000000000000000000000000000000000007F7F7F7F7F7F
7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F00007F7F7FEEEEEE
EEEEEEEEEEEE414141414141EEEEEEEEEEEEEEEEEEC3C3C300007F7F7FEEEEEE
EEEEEE414141414141414141414141EEEEEEEEEEEEC3C3C300007F7F7FEEEEEE
@ -397,6 +397,21 @@ object RxDBGridMainForm: TRxDBGridMainForm
Filter.EmptyFont.Style = [fsItalic]
Filter.ItemIndex = -1
Footers = <>
end
item
Title.Alignment = taCenter
Title.Orientation = toHorizontal
Title.Caption = 'Calculated field'
Width = 150
FieldName = 'CALC_FIELD1'
EditButtons = <>
Filter.DropDownRows = 0
Filter.EmptyValue = '(Пусто)'
Filter.NotEmptyValue = '(Не пусто)'
Filter.AllValue = '(Все значения)'
Filter.EmptyFont.Style = [fsItalic]
Filter.ItemIndex = -1
Footers = <>
end>
KeyStrokes = <
item
@ -471,7 +486,6 @@ object RxDBGridMainForm: TRxDBGridMainForm
DrawFullLine = True
FocusColor = clRed
SelectedColor = clHighlight
GridLineStyle = psSolid
DataSource = Datasource1
Options = [dgEditing, dgTitles, dgIndicator, dgColumnResize, dgColumnMove, dgColLines, dgRowLines, dgTabs, dgAlwaysShowSelection, dgConfirmDelete, dgMultiselect, dgHeaderPushedLook]
PopupMenu = PopupMenu1
@ -481,22 +495,22 @@ object RxDBGridMainForm: TRxDBGridMainForm
end
object Panel1: TPanel
Left = 0
Height = 77
Height = 66
Top = 0
Width = 1240
Width = 1612
Align = alTop
AutoSize = True
ClientHeight = 77
ClientWidth = 1240
ClientHeight = 66
ClientWidth = 1612
TabOrder = 1
object Label1: TLabel
AnchorSideLeft.Control = Button2
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 272
Height = 20
Left = 249
Height = 17
Top = 7
Width = 36
Width = 34
BorderSpacing.Around = 6
Caption = 'Mode'
ParentColor = False
@ -505,9 +519,9 @@ object RxDBGridMainForm: TRxDBGridMainForm
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = Panel1
Left = 7
Height = 36
Height = 29
Top = 7
Width = 88
Width = 79
Action = actCalcTotal
AutoSize = True
BorderSpacing.Around = 6
@ -517,10 +531,10 @@ object RxDBGridMainForm: TRxDBGridMainForm
AnchorSideLeft.Control = Button1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 101
Height = 36
Left = 92
Height = 29
Top = 7
Width = 165
Width = 151
Action = actOptimizeColumnsWidthAll
AutoSize = True
BorderSpacing.Around = 6
@ -531,23 +545,23 @@ object RxDBGridMainForm: TRxDBGridMainForm
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CheckBox2
AnchorSideTop.Side = asrBottom
Left = 501
Height = 24
Left = 478
Height = 23
Hint = 'Use filter line'
Top = 37
Width = 85
Top = 36
Width = 80
BorderSpacing.Left = 6
Caption = 'Use filter'
OnChange = CheckBox1Change
TabOrder = 2
OnChange = CheckBox1Change
end
object ComboBox1: TComboBox
AnchorSideLeft.Control = Label1
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
Left = 278
Height = 32
Top = 33
Left = 255
Height = 25
Top = 30
Width = 217
BorderSpacing.Around = 6
ItemHeight = 0
@ -556,77 +570,77 @@ object RxDBGridMainForm: TRxDBGridMainForm
'Edit mode'
'Quick search mode'
)
OnChange = ComboBox1Change
Style = csDropDownList
TabOrder = 3
Text = 'Edit mode'
OnChange = ComboBox1Change
end
object CheckBox2: TCheckBox
AnchorSideLeft.Control = ComboBox1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 501
Height = 24
Left = 478
Height = 23
Hint = 'Auto fill column width'
Top = 7
Width = 134
Width = 127
BorderSpacing.Around = 6
Caption = 'Auto fill columns'
OnChange = CheckBox2Change
TabOrder = 4
OnChange = CheckBox2Change
end
object CheckBox3: TCheckBox
AnchorSideLeft.Control = CheckBox2
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 641
Height = 24
Left = 611
Height = 23
Top = 7
Width = 120
Width = 115
BorderSpacing.Around = 6
Caption = 'Show indicator'
Checked = True
OnChange = CheckBox3Change
State = cbChecked
TabOrder = 5
OnChange = CheckBox3Change
end
object CheckBox4: TCheckBox
AnchorSideLeft.Control = CheckBox2
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CheckBox3
AnchorSideTop.Side = asrBottom
Left = 641
Height = 24
Top = 37
Width = 117
Left = 611
Height = 23
Top = 36
Width = 110
BorderSpacing.Around = 6
Caption = 'Show headers'
Checked = True
OnChange = CheckBox4Change
State = cbChecked
TabOrder = 6
OnChange = CheckBox4Change
end
object CheckBox5: TCheckBox
AnchorSideLeft.Control = CheckBox3
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 767
Height = 24
Left = 732
Height = 23
Top = 7
Width = 96
Width = 93
BorderSpacing.Around = 6
Caption = 'Word wrap'
OnChange = CheckBox5Change
TabOrder = 7
OnChange = CheckBox5Change
end
object Label2: TLabel
AnchorSideLeft.Control = CheckBox5
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 869
Height = 20
Left = 831
Height = 17
Top = 7
Width = 32
Width = 30
BorderSpacing.Around = 6
Caption = 'Дата'
ParentColor = False
@ -635,9 +649,9 @@ object RxDBGridMainForm: TRxDBGridMainForm
AnchorSideLeft.Control = Label2
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
Left = 875
Height = 37
Top = 33
Left = 837
Height = 29
Top = 30
Width = 129
BorderSpacing.Around = 6
ButtonWidth = 23
@ -704,6 +718,7 @@ object RxDBGridMainForm: TRxDBGridMainForm
DataType = ftString
Size = 100
end>
OnCalcFields = RxMemoryData1CalcFields
PacketRecords = 0
Left = 152
Top = 264
@ -809,6 +824,16 @@ object RxDBGridMainForm: TRxDBGridMainForm
Required = False
Size = 100
end
object RxMemoryData1CALC_FIELD1: TStringField
FieldKind = fkCalculated
FieldName = 'CALC_FIELD1'
Index = 9
LookupCache = False
ProviderFlags = [pfInUpdate, pfInWhere]
ReadOnly = False
Required = False
Size = 100
end
end
object Datasource1: TDataSource
DataSet = RxMemoryData1
@ -920,103 +945,12 @@ object RxDBGridMainForm: TRxDBGridMainForm
Left = 152
Top = 348
Bitmap = {
4C6903000000100000001000000000FF0000000000FF000000FF00FF000000FF
0000000000FF000000FF00FF000000FF0000000000FF000000FF00FF000000FF
000000FF000000FF000000FF000000FF0000000000FF0000FFFF000000FF0000
00FF000080FF0000FFFF000000FF000000FF000080FF0000FFFF000000FF0000
00FF000000FF000000FF00FF000000FF000000FF0000000000FF0000FFFF0000
80FF000080FF0000FFFF0000FFFF000080FF000080FF0000FFFF0000FFFF0000
80FF000000FF00FF000000FF000000FF000000FF0000000000FF0000FFFF0000
80FF000080FF0000FFFF0000FFFF000080FF000080FF0000FFFF0000FFFF0000
00FF00FF000000FF000000FF000000FF000000FF000000FF0000000000FF0000
FFFF000080FF000080FF0000FFFF0000FFFF000080FF000080FF000000FF00FF
000000FF000000FF000000FF000000FF000000FF000000FF0000000000FF0000
FFFF000080FF000080FF0000FFFF0000FFFF000000FF000000FF00FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF00000000
00FF0000FFFF000080FF000000FF000000FF00FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF00000000
00FF0000FFFF000000FF00FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
0000000000FF00FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
0000000000FF00FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF0000000000FF00FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF0000000000FF00FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF0000000000FF00FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF0000000000FF00FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF0000000000FF00FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF0000000000FF00FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF0000000000FF000000FF00FF000000FF
0000000000FF000000FF00FF000000FF0000000000FF000000FF00FF000000FF
000000FF000000FF000000FF000000FF0000000000FF00FFFFFF000000FF0000
00FF008080FF00FFFFFF000000FF000000FF008080FF00FFFFFF000000FF0000
00FF000000FF000000FF00FF000000FF000000FF0000000000FF00FFFFFF0080
80FF008080FF00FFFFFF00FFFFFF008080FF008080FF00FFFFFF00FFFFFF0080
80FF000000FF00FF000000FF000000FF000000FF0000000000FF00FFFFFF0080
80FF008080FF00FFFFFF00FFFFFF008080FF008080FF00FFFFFF00FFFFFF0000
00FF00FF000000FF000000FF000000FF000000FF000000FF0000000000FF00FF
FFFF008080FF008080FF00FFFFFF00FFFFFF008080FF008080FF000000FF00FF
000000FF000000FF000000FF000000FF000000FF000000FF0000000000FF00FF
FFFF008080FF008080FF00FFFFFF00FFFFFF000000FF000000FF00FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF00000000
00FF00FFFFFF008080FF000000FF000000FF00FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF00000000
00FF00FFFFFF000000FF00FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
0000000000FF00FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
0000000000FF00FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF0000000000FF00FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF0000000000FF00FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF0000000000FF00FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF0000000000FF00FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF0000000000FF00FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF0000000000FF00FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF0000000000FF000000FF00FF000000FF
0000000000FF000000FF00FF000000FF0000000000FF000000FF00FF000000FF
000000FF000000FF000000FF000000FF0000000000FFFF0000FF000000FF0000
00FF800000FFFF0000FF000000FF000000FF800000FFFF0000FF000000FF0000
00FF000000FF000000FF00FF000000FF000000FF0000000000FFFF0000FF8000
00FF800000FFFF0000FFFF0000FF800000FF800000FFFF0000FFFF0000FF8000
00FF000000FF00FF000000FF000000FF000000FF0000000000FFFF0000FF8000
00FF800000FFFF0000FFFF0000FF800000FF800000FFFF0000FFFF0000FF0000
00FF00FF000000FF000000FF000000FF000000FF000000FF0000000000FFFF00
00FF800000FF800000FFFF0000FFFF0000FF800000FF800000FF000000FF00FF
000000FF000000FF000000FF000000FF000000FF000000FF0000000000FFFF00
00FF800000FF800000FFFF0000FFFF0000FF000000FF000000FF00FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF00000000
00FFFF0000FF800000FF000000FF000000FF00FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF00000000
00FFFF0000FF000000FF00FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
0000000000FF00FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
0000000000FF00FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF0000000000FF00FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF0000000000FF00FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF0000000000FF00FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF0000000000FF00FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF0000000000FF00FF000000FF000000FF000000FF
000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF
000000FF000000FF000000FF0000000000FF00FF000000FF000000FF000000FF
000000FF000000FF000000FF0000
4C7A030000001000000010000000A50000000000000078DAED95E10A80200C84
7DF4BDF98562B564E7A6887F32303AD99D1BF55142CA17CA427DF274BBCA1D6A
471C6DE43D19A2EA99367A09FB2373B08C8EB7EB4FBED7CC18F059EF62C4D766
CC7A57F84F0F7B7B58C13FD4772ED2D78CFF5C936BEF7AA619FF117F640E9611
E19F9D39C2BF9E73867F1CFE4F0F7BF987DA114733FE516BE5FD719A9AF11FF1
47E6601911FEE99903FC7FE69CE01F33BEC3DE2F7BB800F0B174DA
}
end
object MainMenu1: TMainMenu

View File

@ -32,6 +32,7 @@ type
RxIniPropStorage1: TRxIniPropStorage;
RxMemoryData1ategory_id: TLongintField;
RxMemoryData1ategory_name: TStringField;
RxMemoryData1CALC_FIELD1: TStringField;
RxMemoryData1RAIT: TStringField;
RxMemoryData3: TRxMemoryData;
RxMemoryData3ategory_id: TLongintField;
@ -94,6 +95,7 @@ type
procedure RxDBGrid1Filtred(Sender: TObject);
procedure RxDBGrid1GetCellProps(Sender: TObject; Field: TField;
AFont: TFont; var Background: TColor);
procedure RxMemoryData1CalcFields(DataSet: TDataSet);
procedure showColumnsDialogExecute(Sender: TObject);
procedure showFindDialogExecute(Sender: TObject);
procedure sysExitExecute(Sender: TObject);
@ -200,6 +202,11 @@ begin
Background:=clRed;
end;
procedure TRxDBGridMainForm.RxMemoryData1CalcFields(DataSet: TDataSet);
begin
RxMemoryData1CALC_FIELD1.AsString:=IntToStr(RxMemoryData1ID1.AsInteger div 10);
end;
procedure TRxDBGridMainForm.showColumnsDialogExecute(Sender: TObject);
begin

View File

@ -0,0 +1,69 @@
{ dbutils unit
Copyright (C) 2005-2024 Lagunov Aleksey alexs75@yandex.ru and Lazarus team
original conception from rx library for Delphi (c)
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version with the following modification:
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules,and
to copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the terms
and conditions of the license of that module. An independent module is a
module which is not derived from or based on this library. If you modify
this library, you may extend this exception to your version of the library,
but you are not obligated to do so. If you do not wish to do so, delete this
exception statement from your version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
for more details.
You should have received a copy of the GNU Library General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
unit rxdblclutils;
{$I rx.inc}
interface
uses
LCLType, LCLIntf, Classes, SysUtils, DB;
function ConfirmDelete: Boolean;
procedure ConfirmDataSetCancel(DataSet: TDataSet);
implementation
uses RXDConst, rxdbutils, Forms, Controls, Dialogs, RxAppUtils;
function ConfirmDelete: Boolean;
begin
Screen.Cursor := crDefault;
Result := MessageDlg(SDeleteRecordQuestion, mtConfirmation, [mbYes, mbNo], 0) = mrYes;
end;
procedure ConfirmDataSetCancel(DataSet: TDataSet);
begin
if DataSet.State in [dsEdit, dsInsert] then begin
DataSet.UpdateRecord;
if DataSet.Modified then begin
case MessageDlg(SConfirmSave, mtConfirmation, mbYesNoCancel, 0) of
mrYes: DataSet.Post;
mrNo: DataSet.Cancel;
else SysUtils.Abort;
end;
end
else DataSet.Cancel;
end;
end;
end.

View File

@ -1,6 +1,6 @@
{ dbutils unit
Copyright (C) 2005-2021 Lagunov Aleksey alexs75@yandex.ru and Lazarus team
Copyright (C) 2005-2024 Lagunov Aleksey alexs75@yandex.ru and Lazarus team
original conception from rx library for Delphi (c)
This library is free software; you can redistribute it and/or modify it
@ -36,7 +36,7 @@ unit rxdbutils;
interface
uses
LCLType, LCLIntf, Registry, Classes, SysUtils, DB, IniFiles;
Registry, Classes, SysUtils, DB, IniFiles;
const
IntegerDataTypes = [ftSmallint, ftInteger, ftWord, ftLargeint, ftAutoInc];
@ -121,8 +121,6 @@ procedure SaveFields(DataSet: TDataSet; IniFile: TIniFile);
procedure RestoreFields(DataSet: TDataSet; IniFile: TIniFile;
RestoreVisible: Boolean);
procedure AssignRecord(Source, Dest: TDataSet; ByName: Boolean);
function ConfirmDelete: Boolean;
procedure ConfirmDataSetCancel(DataSet: TDataSet);
procedure CheckRequiredField(Field: TField);
procedure CheckRequiredFields(const Fields: array of TField);
function ExtractFieldName(const Fields: string; var Pos: Integer): string;
@ -171,8 +169,7 @@ procedure _DBError(const Msg: string);
implementation
uses Forms, Controls, Dialogs, RXDConst, rxlclutils, FileUtil, Variants,
RxAppUtils, RxStrUtils, Math, rxdateutil, LazUTF8;
uses RXDConst, rxlclutils, FileUtil, Variants, RxStrUtils, Math, rxdateutil, LazUTF8;
{ Utility routines }
@ -180,29 +177,15 @@ procedure _DBError(const Msg: string);
begin
DatabaseError(Msg);
end;
function ConfirmDelete: Boolean;
{
function GetDefaultSection1(Component: TComponent): string;
begin
Screen.Cursor := crDefault;
Result := MessageDlg(SDeleteRecordQuestion, mtConfirmation,
[mbYes, mbNo], 0) = mrYes;
if Assigned(Component) then
Result:=Format('%s.%s', [Component.ClassName, Component.Name])
else
Result:='';
end;
procedure ConfirmDataSetCancel(DataSet: TDataSet);
begin
if DataSet.State in [dsEdit, dsInsert] then begin
DataSet.UpdateRecord;
if DataSet.Modified then begin
case MessageDlg(SConfirmSave, mtConfirmation, mbYesNoCancel, 0) of
mrYes: DataSet.Post;
mrNo: DataSet.Cancel;
else SysUtils.Abort;
end;
end
else DataSet.Cancel;
end;
end;
}
function SetToBookmark(ADataSet: TDataSet; ABookmark: TBookmark): Boolean;
begin
Result := False;
@ -282,7 +265,7 @@ end;
function TLocateObject.LocateFilter: Boolean;
var
SaveCursor: TCursor;
// SaveCursor: TCursor;
Options: TLocateOptions;
Value: Variant;
begin
@ -669,9 +652,9 @@ end;
function DataSetSectionName(DataSet: TDataSet): string;
begin
with DataSet do
if (Owner <> nil) and (Owner is TCustomForm) then
Result := GetDefaultSection(Owner as TCustomForm)
else Result := Name;
{ if (Owner <> nil) and (Owner is TCustomForm) then
Result := GetDefaultSection1(Owner as TCustomForm)
else }Result := Name;
end;
function CheckSection(DataSet: TDataSet; const Section: string): string;
@ -685,14 +668,15 @@ procedure InternalSaveFields(DataSet: TDataSet; IniFile: TObject;
var
I: Integer;
begin
with DataSet do begin
{ with DataSet do begin
for I := 0 to FieldCount - 1 do begin
IniWriteString(IniFile, CheckSection(DataSet, Section),
Name + Fields[I].FieldName,
Format('%d,%d,%d', [Fields[I].Index, Fields[I].DisplayWidth,
Integer(Fields[I].Visible)]));
end;
end;
end;}
AbstractError;
end;
procedure InternalRestoreFields(DataSet: TDataSet; IniFile: TObject;
@ -741,6 +725,7 @@ begin
FreeMemo(Pointer(FieldArray));
end;
end;}
AbstractError;
end;
(*

View File

@ -6,16 +6,16 @@ object rxFilterByForm: TrxFilterByForm
Caption = 'Filter conditions'
ClientHeight = 498
ClientWidth = 644
OnCreate = FormCreate
Position = poScreenCenter
LCLVersion = '1.9.0.0'
LCLVersion = '3.99.0.0'
OnCreate = FormCreate
object Label1: TLabel
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 6
Height = 20
Height = 17
Top = 6
Width = 212
Width = 190
BorderSpacing.Around = 6
Caption = 'Select filter expression for data'
Font.Style = [fsBold]
@ -27,9 +27,9 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
Left = 6
Height = 20
Top = 32
Width = 58
Height = 17
Top = 29
Width = 53
BorderSpacing.Around = 6
Caption = 'On field:'
Font.Color = clRed
@ -41,9 +41,9 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
Left = 168
Height = 20
Top = 32
Width = 74
Height = 17
Top = 29
Width = 69
BorderSpacing.Around = 6
Caption = 'Operation :'
Font.Color = clRed
@ -55,9 +55,9 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
Left = 271
Height = 20
Top = 32
Width = 80
Height = 17
Top = 29
Width = 75
BorderSpacing.Around = 6
Caption = 'Conditions :'
Font.Color = clRed
@ -70,9 +70,9 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
Left = 533
Height = 20
Top = 32
Width = 65
Height = 17
Top = 29
Width = 60
BorderSpacing.Around = 6
Caption = 'Operand :'
Font.Color = clRed
@ -86,9 +86,9 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideBottom.Control = ComboBox25
AnchorSideBottom.Side = asrBottom
Left = 527
Height = 20
Top = 426
Width = 29
Height = 17
Top = 360
Width = 28
Anchors = [akLeft, akBottom]
Caption = 'End.'
Font.Color = clRed
@ -101,8 +101,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
Left = 6
Height = 36
Top = 58
Height = 29
Top = 52
Width = 153
BorderSpacing.Around = 6
ItemHeight = 0
@ -113,15 +113,15 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
Left = 168
Height = 36
Top = 58
Height = 29
Top = 52
Width = 96
BorderSpacing.Around = 6
DropDownCount = 9
ItemHeight = 0
OnChange = ComboBoxChange
Style = csDropDownList
TabOrder = 1
OnChange = ComboBoxChange
end
object ComboBox3: TComboBox
AnchorSideTop.Control = Label2
@ -129,8 +129,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 527
Height = 32
Top = 58
Height = 25
Top = 52
Width = 111
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
@ -149,8 +149,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox1
AnchorSideRight.Side = asrBottom
Left = 8
Height = 36
Top = 102
Height = 29
Top = 89
Width = 149
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
@ -167,16 +167,16 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox2
AnchorSideRight.Side = asrBottom
Left = 168
Height = 36
Top = 100
Height = 29
Top = 87
Width = 96
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
DropDownCount = 9
ItemHeight = 0
OnChange = ComboBoxChange
Style = csDropDownList
TabOrder = 4
OnChange = ComboBoxChange
end
object ComboBox6: TComboBox
AnchorSideTop.Control = ComboBox1
@ -184,8 +184,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 527
Height = 32
Top = 100
Height = 25
Top = 87
Width = 111
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
@ -204,8 +204,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox1
AnchorSideRight.Side = asrBottom
Left = 8
Height = 36
Top = 146
Height = 29
Top = 126
Width = 149
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
@ -222,16 +222,16 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox2
AnchorSideRight.Side = asrBottom
Left = 168
Height = 36
Top = 144
Height = 29
Top = 124
Width = 96
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
DropDownCount = 9
ItemHeight = 0
OnChange = ComboBoxChange
Style = csDropDownList
TabOrder = 7
OnChange = ComboBoxChange
end
object ComboBox9: TComboBox
AnchorSideTop.Control = ComboBox4
@ -239,8 +239,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 527
Height = 32
Top = 144
Height = 25
Top = 124
Width = 111
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
@ -259,8 +259,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox1
AnchorSideRight.Side = asrBottom
Left = 8
Height = 36
Top = 190
Height = 29
Top = 163
Width = 149
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
@ -277,16 +277,16 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox2
AnchorSideRight.Side = asrBottom
Left = 168
Height = 36
Top = 188
Height = 29
Top = 161
Width = 96
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
DropDownCount = 9
ItemHeight = 0
OnChange = ComboBoxChange
Style = csDropDownList
TabOrder = 10
OnChange = ComboBoxChange
end
object ComboBox12: TComboBox
AnchorSideTop.Control = ComboBox7
@ -294,8 +294,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 527
Height = 32
Top = 188
Height = 25
Top = 161
Width = 111
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
@ -314,8 +314,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox1
AnchorSideRight.Side = asrBottom
Left = 8
Height = 36
Top = 234
Height = 29
Top = 200
Width = 149
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
@ -332,16 +332,16 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox2
AnchorSideRight.Side = asrBottom
Left = 168
Height = 36
Top = 232
Height = 29
Top = 198
Width = 96
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
DropDownCount = 9
ItemHeight = 0
OnChange = ComboBoxChange
Style = csDropDownList
TabOrder = 13
OnChange = ComboBoxChange
end
object ComboBox15: TComboBox
AnchorSideTop.Control = ComboBox10
@ -349,8 +349,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 527
Height = 32
Top = 232
Height = 25
Top = 198
Width = 111
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
@ -369,8 +369,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox1
AnchorSideRight.Side = asrBottom
Left = 8
Height = 36
Top = 278
Height = 29
Top = 237
Width = 149
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
@ -387,16 +387,16 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox2
AnchorSideRight.Side = asrBottom
Left = 168
Height = 36
Top = 276
Height = 29
Top = 235
Width = 96
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
DropDownCount = 9
ItemHeight = 0
OnChange = ComboBoxChange
Style = csDropDownList
TabOrder = 16
OnChange = ComboBoxChange
end
object ComboBox18: TComboBox
AnchorSideTop.Control = ComboBox13
@ -404,8 +404,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 527
Height = 32
Top = 276
Height = 25
Top = 235
Width = 111
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
@ -424,8 +424,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox1
AnchorSideRight.Side = asrBottom
Left = 8
Height = 36
Top = 322
Height = 29
Top = 274
Width = 149
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
@ -442,16 +442,16 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox2
AnchorSideRight.Side = asrBottom
Left = 168
Height = 36
Top = 320
Height = 29
Top = 272
Width = 96
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
DropDownCount = 9
ItemHeight = 0
OnChange = ComboBoxChange
Style = csDropDownList
TabOrder = 19
OnChange = ComboBoxChange
end
object ComboBox21: TComboBox
AnchorSideTop.Control = ComboBox16
@ -459,8 +459,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 527
Height = 32
Top = 320
Height = 25
Top = 272
Width = 111
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
@ -479,8 +479,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox1
AnchorSideRight.Side = asrBottom
Left = 8
Height = 36
Top = 366
Height = 29
Top = 311
Width = 149
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
@ -497,16 +497,16 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox2
AnchorSideRight.Side = asrBottom
Left = 168
Height = 36
Top = 364
Height = 29
Top = 309
Width = 96
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
DropDownCount = 9
ItemHeight = 0
OnChange = ComboBoxChange
Style = csDropDownList
TabOrder = 22
OnChange = ComboBoxChange
end
object ComboBox24: TComboBox
AnchorSideTop.Control = ComboBox19
@ -514,8 +514,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 527
Height = 32
Top = 364
Height = 25
Top = 309
Width = 111
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
@ -534,8 +534,8 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox1
AnchorSideRight.Side = asrBottom
Left = 8
Height = 36
Top = 410
Height = 29
Top = 348
Width = 149
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
@ -552,24 +552,24 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Control = ComboBox2
AnchorSideRight.Side = asrBottom
Left = 168
Height = 36
Top = 408
Height = 29
Top = 346
Width = 96
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
DropDownCount = 9
ItemHeight = 0
OnChange = ComboBoxChange
Style = csDropDownList
TabOrder = 25
OnChange = ComboBoxChange
end
object ComboBox27: TComboBox
AnchorSideLeft.Control = Owner
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 32
Top = 460
Height = 25
Top = 467
Width = 58
Anchors = [akLeft, akBottom]
BorderSpacing.Around = 6
@ -587,62 +587,62 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 586
Height = 36
Top = 456
Width = 52
Left = 592
Height = 29
Top = 463
Width = 46
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Apply'
Default = True
OnClick = Button1Click
TabOrder = 27
OnClick = Button1Click
end
object Button2: TButton
AnchorSideRight.Control = Button1
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 521
Height = 36
Top = 456
Width = 59
Left = 533
Height = 29
Top = 463
Width = 53
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
Cancel = True
Caption = 'Cancel'
OnClick = Button2Click
TabOrder = 28
OnClick = Button2Click
end
object Button3: TButton
AnchorSideRight.Control = Button2
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 432
Height = 36
Top = 456
Width = 83
Left = 451
Height = 29
Top = 463
Width = 76
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Clear filter'
OnClick = Button3Click
TabOrder = 29
OnClick = Button3Click
end
object Edit1: TComboBox
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ComboBox3
Left = 271
Height = 37
Top = 58
Height = 29
Top = 52
Width = 250
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
ItemHeight = 0
OnChange = EditChange
TabOrder = 30
OnChange = EditChange
end
object Edit2: TComboBox
AnchorSideLeft.Control = ComboBox2
@ -651,15 +651,15 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ComboBox3
Left = 270
Height = 37
Top = 100
Height = 29
Top = 87
Width = 251
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
ItemHeight = 0
OnChange = EditChange
TabOrder = 31
OnChange = EditChange
end
object Edit3: TComboBox
AnchorSideLeft.Control = ComboBox2
@ -668,15 +668,15 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ComboBox3
Left = 270
Height = 37
Top = 144
Height = 29
Top = 124
Width = 251
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
ItemHeight = 0
OnChange = EditChange
TabOrder = 32
OnChange = EditChange
end
object Edit4: TComboBox
AnchorSideLeft.Control = ComboBox2
@ -685,15 +685,15 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ComboBox3
Left = 270
Height = 37
Top = 188
Height = 29
Top = 161
Width = 251
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
ItemHeight = 0
OnChange = EditChange
TabOrder = 33
OnChange = EditChange
end
object Edit5: TComboBox
AnchorSideLeft.Control = ComboBox2
@ -702,15 +702,15 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ComboBox3
Left = 270
Height = 37
Top = 232
Height = 29
Top = 198
Width = 251
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
ItemHeight = 0
OnChange = EditChange
TabOrder = 34
OnChange = EditChange
end
object Edit6: TComboBox
AnchorSideLeft.Control = ComboBox2
@ -719,15 +719,15 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ComboBox3
Left = 270
Height = 37
Top = 276
Height = 29
Top = 235
Width = 251
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
ItemHeight = 0
OnChange = EditChange
TabOrder = 35
OnChange = EditChange
end
object Edit7: TComboBox
AnchorSideLeft.Control = ComboBox2
@ -736,15 +736,15 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ComboBox3
Left = 270
Height = 37
Top = 320
Height = 29
Top = 272
Width = 251
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
ItemHeight = 0
OnChange = EditChange
TabOrder = 36
OnChange = EditChange
end
object Edit8: TComboBox
AnchorSideLeft.Control = ComboBox2
@ -753,15 +753,15 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ComboBox3
Left = 270
Height = 37
Top = 364
Height = 29
Top = 309
Width = 251
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
ItemHeight = 0
OnChange = EditChange
TabOrder = 37
OnChange = EditChange
end
object Edit9: TComboBox
AnchorSideLeft.Control = ComboBox2
@ -770,14 +770,14 @@ object rxFilterByForm: TrxFilterByForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ComboBox3
Left = 270
Height = 37
Top = 408
Height = 29
Top = 346
Width = 251
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
ItemHeight = 0
OnChange = EditChange
TabOrder = 38
OnChange = EditChange
end
end

View File

@ -191,7 +191,7 @@ begin
w := Combo_1[1].Width - wsb;
for i := 0 To AGrid.Columns.Count-1 do
begin
if Assigned(AGrid.Columns[i].Field) and (AGrid.Columns[i].Field.FieldKind=fkData) and (AGrid.Columns[i].Visible) then
if Assigned(AGrid.Columns[i].Field) and (AGrid.Columns[i].Field.FieldKind in [fkData, fkCalculated]) and (AGrid.Columns[i].Visible) then
begin
Combo_1[1].Items.AddObject(AGrid.Columns[i].Title.Caption, AGrid.Columns[i].Field);
Edit_1[1].Items.AddObject(AGrid.Columns[i].Title.Caption, AGrid.Columns[i].Field);

View File

@ -353,7 +353,8 @@ begin
begin
Result := Size;
case FieldType of
ftString: Inc(Result);
//ftString: Inc(Result);
ftString: Result := (Result + 1) * 4;
ftSmallint: Result := SizeOf(SmallInt);
ftInteger: Result := SizeOf(Longint);
ftWord: Result := SizeOf(Word);

View File

@ -26,7 +26,7 @@ Copyright (c) 1998 Master-Bank
translate to Lazarus by alexs in 2005 - 2021"/>
<License Value="LGPL"/>
<Version Major="3" Minor="4" Release="1" Build="235"/>
<Files Count="70">
<Files Count="71">
<Item1>
<Filename Value="registerrx.pas"/>
<HasRegisterProc Value="True"/>
@ -323,6 +323,10 @@ translate to Lazarus by alexs in 2005 - 2021"/>
<Filename Value="rxcontrols\rxpopupnotifier.pas"/>
<UnitName Value="RxPopupNotifier"/>
</Item70>
<Item71>
<Filename Value="rxdb\rxdblclutils.pas"/>
<UnitName Value="rxdblclutils"/>
</Item71>
</Files>
<CompatibilityMode Value="True"/>
<LazDoc Paths="docs;\usr\local\share\lazarus\components\rxnew\docs"/>

View File

@ -9,19 +9,20 @@ interface
uses
registerrx, RegisterRxDB, RegisterRxTools, RxHistoryNavigator,
RxAboutDialog, rxAboutFormUnit, rxclock, RxCloseFormValidator, rxapputils,
RxAboutDialog, rxAboutFormUnit, rxclock, RxCloseFormValidator, rxAppUtils,
RxAutoPanel, rxboxprocs, rxctrls, rxcurredit, rxDateRangeEditUnit,
RxVersInfo, RxViewsPanel, ex_rx_bin_datapacket, ex_rx_datapacket,
ex_rx_xml_datapacket, RxDBColorBox, rxdbcomb, RxDBCtrls, rxdbcurredit,
rxdbdateedit, rxdbgrid, rxdbgrid_columsunit, rxdbgrid_findunit, exsortmds,
rxdbdateedit, RxDBGrid, rxdbgrid_columsunit, rxdbgrid_findunit, exsortmds,
RxDBGridExportPdf, RxDBGridExportPdfSetupUnit, RxDBGridFooterTools,
rxdbgridfootertools_setup, RxDBSpinEdit, RxDBTimeEdit, rxdbutils,
rxfilterby, rxlookup, rxmemds, rxpopupunit, rxseldsfrm, rxsortby,
rxsortmemds, rxdice, rxduallist, rxfduallst, rxfolderlister, RXHistory,
rxsortmemds, rxDice, rxduallist, rxfduallst, rxfolderlister, RXHistory,
RxIniPropStorage, rxlclconst, rxlogin, RxMDI, rxpagemngr, rxpickdate,
rxShortCutUnit, rxspin, rxswitch, RxSystemServices, rxtbrsetup, RxTimeEdit,
rxtoolbar, rxtooledit, RxDBGrid_PopUpFilterUnit, rxdbverticalgrid,
rxlclutils, RxRangeSel, RxXMLPropStorage, rxPopupNotifier, LazarusPackageIntf;
rxlclutils, RxRangeSel, RxXMLPropStorage, RxPopupNotifier, rxdblclutils,
LazarusPackageIntf;
implementation