You've already forked lazarus-ccr
CaseInsensetive sort in RxDBGrid
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1042 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -35,22 +35,29 @@ unit exsortfb;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, DB, RxDBGrid;
|
||||
Classes, SysUtils, DB,
|
||||
{$IFDEF FPC}
|
||||
RxDBGrid
|
||||
{$ELSE}
|
||||
exDBGrid
|
||||
{$ENDIF}
|
||||
;
|
||||
|
||||
type
|
||||
|
||||
{ TFBDataSetSortEngine }
|
||||
|
||||
TFBDataSetSortEngine = class(TExDBGridSortEngine)
|
||||
TFBDataSetSortEngine = class(TRxDBGridSortEngine)
|
||||
public
|
||||
procedure Sort(Field:TField; ADataSet:TDataSet; Asc:boolean);override;
|
||||
procedure Sort(Field:TField; ADataSet:TDataSet; Asc:boolean; SortOptions:TRxSortEngineOptions);override;
|
||||
procedure SortList(ListField:string; ADataSet:TDataSet; Asc:boolean);override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
uses FBCustomDataSet;
|
||||
|
||||
procedure TFBDataSetSortEngine.Sort(Field:TField; ADataSet:TDataSet; Asc:boolean);
|
||||
procedure TFBDataSetSortEngine.Sort(Field: TField; ADataSet: TDataSet;
|
||||
Asc: boolean; SortOptions: TRxSortEngineOptions);
|
||||
begin
|
||||
if Assigned(ADataSet) then
|
||||
(ADataSet as TFBDataSet).SortOnField(Field.FieldName, Asc);
|
||||
@ -64,6 +71,6 @@ begin
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterExDBGridSortEngine(TFBDataSetSortEngine, TFBDataSet);
|
||||
RegisterRxDBGridSortEngine(TFBDataSetSortEngine, TFBDataSet);
|
||||
end.
|
||||
|
||||
|
@ -361,6 +361,10 @@ msgstr "&Orden de Ordenamiento :"
|
||||
msgid "Sort on field"
|
||||
msgstr "Ordenar por Columnas"
|
||||
|
||||
#: rxdconst.srxsortbyformcaseinsens
|
||||
msgid "&Case insensitive sort"
|
||||
msgstr ""
|
||||
|
||||
#: rxdconst.srxsortbyformmovednfield
|
||||
msgid "&Down"
|
||||
msgstr "A&bajo"
|
||||
@ -378,7 +382,9 @@ msgid "&Selected fields:"
|
||||
msgstr "&Campos Disponibles :"
|
||||
|
||||
#: rxdconst.srxsortbyformsortorder
|
||||
msgid "Select field for sort data:"
|
||||
#, fuzzy
|
||||
#| msgid "Select field for sort data:"
|
||||
msgid "Select f&ield for sort data:"
|
||||
msgstr "Seleccionar Dirección de Ordenamiento :"
|
||||
|
||||
#: rxdconst.srxsoursedataset
|
||||
|
@ -361,6 +361,10 @@ msgstr ""
|
||||
msgid "Sort on field"
|
||||
msgstr ""
|
||||
|
||||
#: rxdconst.srxsortbyformcaseinsens
|
||||
msgid "&Case insensitive sort"
|
||||
msgstr ""
|
||||
|
||||
#: rxdconst.srxsortbyformmovednfield
|
||||
msgid "&Down"
|
||||
msgstr ""
|
||||
@ -378,7 +382,7 @@ msgid "&Selected fields:"
|
||||
msgstr ""
|
||||
|
||||
#: rxdconst.srxsortbyformsortorder
|
||||
msgid "Select field for sort data:"
|
||||
msgid "Select f&ield for sort data:"
|
||||
msgstr ""
|
||||
|
||||
#: rxdconst.srxsoursedataset
|
||||
|
@ -361,6 +361,10 @@ msgstr "&Поля в таблице"
|
||||
msgid "Sort on field"
|
||||
msgstr "Сортировать по полям"
|
||||
|
||||
#: rxdconst.srxsortbyformcaseinsens
|
||||
msgid "&Case insensitive sort"
|
||||
msgstr "&Сортировка без учёта регистра"
|
||||
|
||||
#: rxdconst.srxsortbyformmovednfield
|
||||
msgid "&Down"
|
||||
msgstr "&Вниз"
|
||||
@ -378,7 +382,9 @@ msgid "&Selected fields:"
|
||||
msgstr "&Выбранные поля"
|
||||
|
||||
#: rxdconst.srxsortbyformsortorder
|
||||
msgid "Select field for sort data:"
|
||||
#, fuzzy
|
||||
#| msgid "Select field for sort data:"
|
||||
msgid "Select f&ield for sort data:"
|
||||
msgstr "Укажите поля для сортировки данных :"
|
||||
|
||||
#: rxdconst.srxsoursedataset
|
||||
|
@ -44,7 +44,8 @@ type
|
||||
rdgAllowQuickSearch,
|
||||
rdgAllowFilterForm,
|
||||
rdgAllowSortForm,
|
||||
rdgAllowToolMenu
|
||||
rdgAllowToolMenu,
|
||||
rdgCaseInsensitiveSort
|
||||
);
|
||||
|
||||
TOptionsRx = set of TOptionRx;
|
||||
@ -55,17 +56,20 @@ type
|
||||
|
||||
TRxColumn = class;
|
||||
|
||||
{ TExDBGridSortEngine }
|
||||
{ TRxDBGridSortEngine }
|
||||
TRxSortEngineOption =
|
||||
(seoCaseInsensitiveSort);
|
||||
TRxSortEngineOptions = set of TRxSortEngineOption;
|
||||
|
||||
TExDBGridSortEngine = class
|
||||
TRxDBGridSortEngine = class
|
||||
private
|
||||
FDataSetClass:TDataSetClass;
|
||||
public
|
||||
procedure Sort(Field:TField; ADataSet:TDataSet; Asc:boolean);virtual;abstract;
|
||||
procedure Sort(Field:TField; ADataSet:TDataSet; Asc:boolean; SortOptions:TRxSortEngineOptions);virtual;abstract;
|
||||
procedure SortList(ListField:string; ADataSet:TDataSet; Asc:boolean);virtual;
|
||||
end;
|
||||
|
||||
TExDBGridSortEngineClass = class of TExDBGridSortEngine;
|
||||
TRxDBGridSortEngineClass = class of TRxDBGridSortEngine;
|
||||
|
||||
TMLCaptionItem = class
|
||||
Caption:string;
|
||||
@ -244,7 +248,7 @@ type
|
||||
//auto sort support
|
||||
FSortField:TField;
|
||||
FSortOrder:TSortMarker;
|
||||
FSortEngine:TExDBGridSortEngine;
|
||||
FSortEngine:TRxDBGridSortEngine;
|
||||
FPressedCol: TColumn;
|
||||
FPressed: Boolean;
|
||||
FSwapButtons: Boolean;
|
||||
@ -303,6 +307,8 @@ type
|
||||
procedure OutCaptionSortMarker(const aRect: TRect; ASortMarker: TSortMarker);
|
||||
procedure OutCaptionMLCellText(aCol,aRow: Integer; aRect: TRect; aState: TGridDrawState; MLI:TMLCaptionItem);
|
||||
procedure UpdateJMenuStates;
|
||||
function SortEngineOptions:TRxSortEngineOptions;
|
||||
|
||||
|
||||
//storage
|
||||
procedure OnIniSave(Sender: TObject);
|
||||
@ -480,25 +486,25 @@ type
|
||||
property OnDisplayLookup: TDisplayLookup read F_DisplayLookup write F_DisplayLookup;
|
||||
end;
|
||||
|
||||
procedure RegisterExDBGridSortEngine(ExDBGridSortEngineClass:TExDBGridSortEngineClass; DataSetClass:TDataSetClass);
|
||||
procedure RegisterRxDBGridSortEngine(RxDBGridSortEngineClass:TRxDBGridSortEngineClass; DataSetClass:TDataSetClass);
|
||||
|
||||
implementation
|
||||
uses Math, rxdconst, rxstrutils, rxdbgrid_findunit, rxdbgrid_columsunit,
|
||||
rxlookup, tooledit, LCLProc, rxfilterby, rxsortby;
|
||||
|
||||
var
|
||||
ExDBGridSortEngineList:TStringList;
|
||||
RxDBGridSortEngineList:TStringList;
|
||||
|
||||
procedure RegisterExDBGridSortEngine(ExDBGridSortEngineClass:TExDBGridSortEngineClass; DataSetClass:TDataSetClass);
|
||||
procedure RegisterRxDBGridSortEngine(RxDBGridSortEngineClass:TRxDBGridSortEngineClass; DataSetClass:TDataSetClass);
|
||||
var
|
||||
Pos:integer;
|
||||
ExDBGridSortEngine:TExDBGridSortEngine;
|
||||
RxDBGridSortEngine:TRxDBGridSortEngine;
|
||||
begin
|
||||
if not ExDBGridSortEngineList.Find(DataSetClass.ClassName, Pos) then
|
||||
if not RxDBGridSortEngineList.Find(DataSetClass.ClassName, Pos) then
|
||||
begin
|
||||
ExDBGridSortEngine:=ExDBGridSortEngineClass.Create;
|
||||
ExDBGridSortEngine.FDataSetClass:=DataSetClass;
|
||||
ExDBGridSortEngineList.AddObject(DataSetClass.ClassName, ExDBGridSortEngine);
|
||||
RxDBGridSortEngine:=RxDBGridSortEngineClass.Create;
|
||||
RxDBGridSortEngine.FDataSetClass:=DataSetClass;
|
||||
RxDBGridSortEngineList.AddObject(DataSetClass.ClassName, RxDBGridSortEngine);
|
||||
end
|
||||
end;
|
||||
|
||||
@ -856,8 +862,8 @@ begin
|
||||
if Assigned(DataSource) and Assigned(DataSource.DataSet) and DataSource.DataSet.Active then
|
||||
begin
|
||||
S:=DataSource.DataSet.ClassName;
|
||||
if ExDBGridSortEngineList.Find(S, Pos) then
|
||||
FSortEngine:=ExDBGridSortEngineList.Objects[Pos] as TExDBGridSortEngine
|
||||
if RxDBGridSortEngineList.Find(S, Pos) then
|
||||
FSortEngine:=RxDBGridSortEngineList.Objects[Pos] as TRxDBGridSortEngine
|
||||
else
|
||||
FSortEngine:=nil;
|
||||
FSortField:=nil;
|
||||
@ -1221,6 +1227,13 @@ begin
|
||||
F_PopupMenu.Items[6].Enabled:=rdgAllowColumnsForm in FOptionsRx;
|
||||
end;
|
||||
|
||||
function TRxDBGrid.SortEngineOptions: TRxSortEngineOptions;
|
||||
begin
|
||||
Result:=[];
|
||||
if rdgCaseInsensitiveSort in FOptionsRx then
|
||||
Include(Result, seoCaseInsensitiveSort);
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.OnIniSave(Sender: TObject);
|
||||
var
|
||||
i:integer;
|
||||
@ -1287,7 +1300,7 @@ begin
|
||||
begin
|
||||
FSortField:=DataSource.DataSet.FindField(ColumName);
|
||||
if Assigned(FSortField) then
|
||||
FSortEngine.Sort(FSortField, DataSource.DataSet, FSortOrder=smUp);
|
||||
FSortEngine.Sort(FSortField, DataSource.DataSet, FSortOrder=smUp, SortEngineOptions);
|
||||
end;
|
||||
end
|
||||
end;
|
||||
@ -1605,8 +1618,8 @@ begin
|
||||
if Value then
|
||||
begin
|
||||
S:=DataSource.DataSet.ClassName;
|
||||
if ExDBGridSortEngineList.Find(S, Pos) then
|
||||
FSortEngine:=ExDBGridSortEngineList.Objects[Pos] as TExDBGridSortEngine
|
||||
if RxDBGridSortEngineList.Find(S, Pos) then
|
||||
FSortEngine:=RxDBGridSortEngineList.Objects[Pos] as TRxDBGridSortEngine
|
||||
else
|
||||
FSortEngine:=nil;
|
||||
end
|
||||
@ -1743,7 +1756,7 @@ begin
|
||||
FSortField:=AField;
|
||||
FSortOrder:=smUp;
|
||||
end;
|
||||
FSortEngine.Sort(FSortField, DataSource.DataSet, FSortOrder=smUp);
|
||||
FSortEngine.Sort(FSortField, DataSource.DataSet, FSortOrder=smUp, SortEngineOptions);
|
||||
end;
|
||||
// if Assigned(FOnTitleBtnClick) then FOnTitleBtnClick(Self, ACol, AField);
|
||||
end;
|
||||
@ -2566,6 +2579,7 @@ begin
|
||||
begin
|
||||
FSortField:=nil;
|
||||
rxSortByForm:=TrxSortByForm.Create(Application);
|
||||
rxSortByForm.CheckBox1.Checked:=rdgCaseInsensitiveSort in FOptionsRx;
|
||||
o:=not (FSortOrder=smDown);
|
||||
if rxSortByForm.Execute(DataSource.DataSet,F_SortListField,o) then
|
||||
begin
|
||||
@ -2578,6 +2592,12 @@ begin
|
||||
FSortOrder:=smUp
|
||||
else
|
||||
FSortOrder:=smDown;
|
||||
|
||||
if rxSortByForm.CheckBox1.Checked then
|
||||
Include(FOptionsRx, rdgCaseInsensitiveSort)
|
||||
else
|
||||
Exclude(FOptionsRx, rdgCaseInsensitiveSort);
|
||||
|
||||
FSortEngine.SortList(s, DataSource.DataSet, o);
|
||||
end;
|
||||
FreeAndNil(rxSortByForm);
|
||||
@ -3332,7 +3352,7 @@ end;
|
||||
|
||||
{ TExDBGridSortEngine }
|
||||
|
||||
procedure TExDBGridSortEngine.SortList(ListField: string; ADataSet: TDataSet;
|
||||
procedure TRxDBGridSortEngine.SortList(ListField: string; ADataSet: TDataSet;
|
||||
Asc: boolean);
|
||||
begin
|
||||
|
||||
@ -3342,14 +3362,14 @@ initialization
|
||||
{$I rxdbgrid.lrs}
|
||||
// {$I rx_markerdown.lrs}
|
||||
|
||||
ExDBGridSortEngineList:=TStringList.Create;
|
||||
ExDBGridSortEngineList.Sorted:=true;
|
||||
RxDBGridSortEngineList:=TStringList.Create;
|
||||
RxDBGridSortEngineList.Sorted:=true;
|
||||
finalization
|
||||
while (ExDBGridSortEngineList.Count>0) do
|
||||
while (RxDBGridSortEngineList.Count>0) do
|
||||
begin
|
||||
ExDBGridSortEngineList.Objects[0].Free;
|
||||
ExDBGridSortEngineList.Delete(0);
|
||||
RxDBGridSortEngineList.Objects[0].Free;
|
||||
RxDBGridSortEngineList.Delete(0);
|
||||
end;
|
||||
ExDBGridSortEngineList.Free;
|
||||
RxDBGridSortEngineList.Free;
|
||||
end.
|
||||
|
||||
|
@ -103,11 +103,12 @@ resourcestring
|
||||
sRxSortByFormCaption = 'Sort on field';
|
||||
sRxSortByFormAllFields = '&Fields in dataset:';
|
||||
sRxSortByFormSortFields = '&Selected fields:';
|
||||
sRxSortByFormSortOrder = 'Select field for sort data:';
|
||||
sRxSortByFormSortOrder = 'Select f&ield for sort data:';
|
||||
sRxSortByFormAddField = '&Add field';
|
||||
sRxSortByFormRemoveField = '&Remove';
|
||||
sRxSortByFormMoveUpField = '&Up';
|
||||
sRxSortByFormMoveDnField = '&Down';
|
||||
sRxSortByFormCaseInsens = '&Case insensitive sort';
|
||||
|
||||
//TRxMemoryData
|
||||
SMemNoRecords = 'No data found';
|
||||
|
@ -1,16 +1,16 @@
|
||||
object rxSortByForm: TrxSortByForm
|
||||
Left = 450
|
||||
Height = 337
|
||||
Top = 270
|
||||
Width = 583
|
||||
Height = 411
|
||||
Top = 243
|
||||
Width = 684
|
||||
ActiveControl = AddBtn
|
||||
Caption = 'Sort by fields'
|
||||
ClientHeight = 337
|
||||
ClientWidth = 583
|
||||
ClientHeight = 411
|
||||
ClientWidth = 684
|
||||
OnClose = FormClose
|
||||
OnCreate = FormCreate
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '0.9.27'
|
||||
LCLVersion = '0.9.29'
|
||||
object Label1: TLabel
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Owner
|
||||
@ -27,7 +27,7 @@ object rxSortByForm: TrxSortByForm
|
||||
AnchorSideLeft.Control = AddBtn
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Owner
|
||||
Left = 352
|
||||
Left = 423
|
||||
Height = 18
|
||||
Top = 6
|
||||
Width = 75
|
||||
@ -42,7 +42,7 @@ object rxSortByForm: TrxSortByForm
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 18
|
||||
Top = 265
|
||||
Top = 316
|
||||
Width = 116
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Left = 6
|
||||
@ -58,10 +58,10 @@ object rxSortByForm: TrxSortByForm
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = ComboBox1
|
||||
Left = 352
|
||||
Height = 216
|
||||
Left = 423
|
||||
Height = 267
|
||||
Top = 30
|
||||
Width = 225
|
||||
Width = 255
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BorderSpacing.Around = 6
|
||||
ItemHeight = 0
|
||||
@ -75,7 +75,7 @@ object rxSortByForm: TrxSortByForm
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = AddBtn
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 197
|
||||
Left = 268
|
||||
Height = 35
|
||||
Top = 71
|
||||
Width = 149
|
||||
@ -109,7 +109,7 @@ object rxSortByForm: TrxSortByForm
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = AddBtn
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 197
|
||||
Left = 268
|
||||
Height = 36
|
||||
Top = 112
|
||||
Width = 149
|
||||
@ -142,7 +142,7 @@ object rxSortByForm: TrxSortByForm
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = AddBtn
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 197
|
||||
Left = 268
|
||||
Height = 36
|
||||
Top = 154
|
||||
Width = 149
|
||||
@ -174,11 +174,11 @@ object rxSortByForm: TrxSortByForm
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Control = ButtonPanel1
|
||||
AnchorSideBottom.Control = CheckBox1
|
||||
Left = 128
|
||||
Height = 31
|
||||
Top = 252
|
||||
Width = 449
|
||||
Top = 303
|
||||
Width = 550
|
||||
Anchors = [akLeft, akRight, akBottom]
|
||||
BorderSpacing.Around = 6
|
||||
ItemHeight = 0
|
||||
@ -189,12 +189,13 @@ object rxSortByForm: TrxSortByForm
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Label1
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = AddBtn
|
||||
AnchorSideBottom.Control = ComboBox1
|
||||
Left = 6
|
||||
Height = 216
|
||||
Height = 267
|
||||
Top = 30
|
||||
Width = 185
|
||||
Anchors = [akTop, akLeft, akBottom]
|
||||
Width = 256
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
BorderSpacing.Around = 6
|
||||
ItemHeight = 0
|
||||
OnDblClick = ListBox1DblClick
|
||||
@ -202,10 +203,10 @@ object rxSortByForm: TrxSortByForm
|
||||
TopIndex = -1
|
||||
end
|
||||
object AddBtn: TBitBtn
|
||||
AnchorSideLeft.Control = ListBox1
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideLeft.Side = asrCenter
|
||||
AnchorSideTop.Control = ListBox1
|
||||
Left = 197
|
||||
Left = 268
|
||||
Height = 35
|
||||
Top = 30
|
||||
Width = 149
|
||||
@ -232,10 +233,24 @@ object rxSortByForm: TrxSortByForm
|
||||
end
|
||||
object ButtonPanel1: TButtonPanel
|
||||
Left = 6
|
||||
Height = 42
|
||||
Top = 289
|
||||
Width = 571
|
||||
Height = 40
|
||||
Top = 365
|
||||
Width = 672
|
||||
TabOrder = 7
|
||||
ShowButtons = [pbOK, pbCancel, pbHelp]
|
||||
end
|
||||
object CheckBox1: TCheckBox
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = Label4
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideBottom.Control = ButtonPanel1
|
||||
Left = 6
|
||||
Height = 19
|
||||
Top = 340
|
||||
Width = 163
|
||||
Anchors = [akLeft, akBottom]
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'Case insensitive sort'
|
||||
TabOrder = 8
|
||||
end
|
||||
end
|
||||
|
@ -1,33 +1,33 @@
|
||||
{ Este es un archivo de recurso de Lazarus generado automáticamente }
|
||||
{ Это - файл ресурсов, автоматически созданный lazarus }
|
||||
|
||||
LazarusResources.Add('TrxSortByForm','FORMDATA',[
|
||||
'TPF0'#13'TrxSortByForm'#12'rxSortByForm'#4'Left'#3#194#1#6'Height'#3'Q'#1#3
|
||||
+'Top'#3#14#1#5'Width'#3'G'#2#13'ActiveControl'#7#6'AddBtn'#7'Caption'#6#14'S'
|
||||
+'ort by fields'#12'ClientHeight'#3'Q'#1#11'ClientWidth'#3'G'#2#7'OnClose'#7#9
|
||||
+'FormClose'#8'OnCreate'#7#10'FormCreate'#8'Position'#7#14'poScreenCenter'#10
|
||||
+'LCLVersion'#6#6'0.9.27'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5
|
||||
+'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#6#6'Height'#2#18#3'To'
|
||||
+'p'#2#6#5'Width'#3#131#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#20'&Field'
|
||||
+'s for sorting:'#12'FocusControl'#7#8'ListBox1'#11'ParentColor'#8#0#0#6'TLab'
|
||||
+'el'#6'Label2'#22'AnchorSideLeft.Control'#7#6'AddBtn'#19'AnchorSideLeft.Side'
|
||||
+#7#9'asrBottom'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#3'`'#1#6'Height'
|
||||
+#2#18#3'Top'#2#6#5'Width'#2'K'#20'BorderSpacing.Around'#2#6#7'Caption'#6#12
|
||||
+'&All fields:'#12'FocusControl'#7#8'ListBox2'#11'ParentColor'#8#0#0#6'TLabel'
|
||||
+#6'Label4'#22'AnchorSideLeft.Control'#7#5'Owner'#24'AnchorSideBottom.Control'
|
||||
+#7#9'ComboBox1'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Heigh'
|
||||
+'t'#2#18#3'Top'#3#9#1#5'Width'#2't'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#18
|
||||
+'BorderSpacing.Left'#2#6#7'Caption'#6#17'Select sort order'#12'FocusControl'
|
||||
+#7#9'ComboBox1'#11'ParentColor'#8#0#0#8'TListBox'#8'ListBox2'#22'AnchorSideL'
|
||||
+'eft.Control'#7#6'AddBtn'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSi'
|
||||
+'deTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorS'
|
||||
+'ideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'Anc'
|
||||
+'horSideBottom.Control'#7#9'ComboBox1'#4'Left'#3'`'#1#6'Height'#3#216#0#3'To'
|
||||
+'p'#2#30#5'Width'#3#225#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBo'
|
||||
+'ttom'#0#20'BorderSpacing.Around'#2#6#10'ItemHeight'#2#0#10'OnDblClick'#7#16
|
||||
+'ListBox2DblClick'#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#7'TBitBtn'#9'Remove'
|
||||
+'Btn'#22'AnchorSideLeft.Control'#7#6'AddBtn'#21'AnchorSideTop.Control'#7#6'A'
|
||||
+'ddBtn'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#6
|
||||
+'AddBtn'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#197#0#6'Height'#2
|
||||
'TPF0'#13'TrxSortByForm'#12'rxSortByForm'#4'Left'#3#194#1#6'Height'#3#155#1#3
|
||||
+'Top'#3#243#0#5'Width'#3#172#2#13'ActiveControl'#7#6'AddBtn'#7'Caption'#6#14
|
||||
+'Sort by fields'#12'ClientHeight'#3#155#1#11'ClientWidth'#3#172#2#7'OnClose'
|
||||
+#7#9'FormClose'#8'OnCreate'#7#10'FormCreate'#8'Position'#7#14'poScreenCenter'
|
||||
+#10'LCLVersion'#6#6'0.9.29'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'
|
||||
+#7#5'Owner'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#6#6'Height'#2#18#3
|
||||
+'Top'#2#6#5'Width'#3#131#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#20'&Fie'
|
||||
+'lds for sorting:'#12'FocusControl'#7#8'ListBox1'#11'ParentColor'#8#0#0#6'TL'
|
||||
+'abel'#6'Label2'#22'AnchorSideLeft.Control'#7#6'AddBtn'#19'AnchorSideLeft.Si'
|
||||
+'de'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#3#167#1#6'H'
|
||||
+'eight'#2#18#3'Top'#2#6#5'Width'#2'K'#20'BorderSpacing.Around'#2#6#7'Caption'
|
||||
+#6#12'&All fields:'#12'FocusControl'#7#8'ListBox2'#11'ParentColor'#8#0#0#6'T'
|
||||
+'Label'#6'Label4'#22'AnchorSideLeft.Control'#7#5'Owner'#24'AnchorSideBottom.'
|
||||
+'Control'#7#9'ComboBox1'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6
|
||||
+#6'Height'#2#18#3'Top'#3'<'#1#5'Width'#2't'#7'Anchors'#11#6'akLeft'#8'akBott'
|
||||
+'om'#0#18'BorderSpacing.Left'#2#6#7'Caption'#6#17'Select sort order'#12'Focu'
|
||||
+'sControl'#7#9'ComboBox1'#11'ParentColor'#8#0#0#8'TListBox'#8'ListBox2'#22'A'
|
||||
+'nchorSideLeft.Control'#7#6'AddBtn'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21
|
||||
+'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrBottom'#23
|
||||
+'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'
|
||||
+#24'AnchorSideBottom.Control'#7#9'ComboBox1'#4'Left'#3#167#1#6'Height'#3#11#1
|
||||
+#3'Top'#2#30#5'Width'#3#255#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8
|
||||
+'akBottom'#0#20'BorderSpacing.Around'#2#6#10'ItemHeight'#2#0#10'OnDblClick'#7
|
||||
+#16'ListBox2DblClick'#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#7'TBitBtn'#9'Rem'
|
||||
+'oveBtn'#22'AnchorSideLeft.Control'#7#6'AddBtn'#21'AnchorSideTop.Control'#7#6
|
||||
+'AddBtn'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7
|
||||
+#6'AddBtn'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3#12#1#6'Height'#2
|
||||
+'#'#3'Top'#2'G'#5'Width'#3#149#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'
|
||||
+#0#8'AutoSize'#9#17'BorderSpacing.Top'#2#6#7'Caption'#6#7'&Remove'#10'Glyph.'
|
||||
+'Data'#10#142#1#0#0#138#1#0#0'BM'#138#1#0#0#0#0#0#0'v'#0#0#0'('#0#0#0#24#0#0
|
||||
@ -46,67 +46,73 @@ LazarusResources.Add('TrxSortByForm','FORMDATA',[
|
||||
+'TabOrder'#2#2#0#0#7'TBitBtn'#5'UpBtn'#22'AnchorSideLeft.Control'#7#6'AddBtn'
|
||||
+#21'AnchorSideTop.Control'#7#9'RemoveBtn'#18'AnchorSideTop.Side'#7#9'asrBott'
|
||||
+'om'#23'AnchorSideRight.Control'#7#6'AddBtn'#20'AnchorSideRight.Side'#7#9'as'
|
||||
+'rBottom'#4'Left'#3#197#0#6'Height'#2'$'#3'Top'#2'p'#5'Width'#3#149#0#7'Anch'
|
||||
+'ors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#17'BorderSpacing.Top'
|
||||
+#2#6#7'Caption'#6#8'M&ove up'#10'Glyph.Data'#10#154#1#0#0#150#1#0#0'BM'#150#1
|
||||
+#0#0#0#0#0#0'v'#0#0#0'('#0#0#0#23#0#0#0#24#0#0#0#1#0#4#0#0#0#0#0' '#1#0#0#0#0
|
||||
+#0#0#0#0#0#0#16#0#0#0#16#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0
|
||||
+#0#0#128#0#128#0#128#128#0#0#192#192#192#0#128#128#128#0#0#0#200#0#0#255#0#0
|
||||
+#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0'wwwwwwwwwwwpwww'
|
||||
+'wwwwwwwwpwwwwwwwwwwwpwwwx'#0#0#0#8'wwwpwwwp'#153#153#153#159'wwwpwwwp'#153
|
||||
+#153#153#159'wwwpwwwp'#153#153#153#159'wwwpwwwp'#153#153#153#159'wwwpwwwp'
|
||||
+#153#153#153#159'wwwpwwwp'#153#153#153#159'wwwpx'#0#0#0#153#153#153#152#136
|
||||
+#136#143'pw'#9#153#153#153#153#153#153#153#153#247'pwp'#153#153#153#153#153
|
||||
+#153#153#159'wpww'#9#153#153#153#153#153#153#247'wpwwp'#153#153#153#153#153
|
||||
+#159'wwpwww'#9#153#153#153#153#247'wwpwwwp'#153#153#153#159'wwwpwwww'#9#153
|
||||
+#153#247'wwwpwwwwp'#153#159'wwwwpwwwww'#9#247'wwwwpwwwwwwwwwwpwwwwwwwwwwwpw'
|
||||
+'wwwwwwwwwwpwwwwwwwwwwwp'#9'NumGlyphs'#2#0#7'OnClick'#7#10'UpBtnClick'#8'Tab'
|
||||
+'Order'#2#3#0#0#7'TBitBtn'#7'DownBtn'#22'AnchorSideLeft.Control'#7#6'AddBtn'
|
||||
+'rBottom'#4'Left'#3#12#1#6'Height'#2'$'#3'Top'#2'p'#5'Width'#3#149#0#7'Ancho'
|
||||
+'rs'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#17'BorderSpacing.Top'#2
|
||||
+#6#7'Caption'#6#8'M&ove up'#10'Glyph.Data'#10#154#1#0#0#150#1#0#0'BM'#150#1#0
|
||||
+#0#0#0#0#0'v'#0#0#0'('#0#0#0#23#0#0#0#24#0#0#0#1#0#4#0#0#0#0#0' '#1#0#0#0#0#0
|
||||
+#0#0#0#0#0#16#0#0#0#16#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0
|
||||
+#0#128#0#128#0#128#128#0#0#192#192#192#0#128#128#128#0#0#0#200#0#0#255#0#0#0
|
||||
+#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0'wwwwwwwwwwwpwwwww'
|
||||
+'wwwwwwpwwwwwwwwwwwpwwwx'#0#0#0#8'wwwpwwwp'#153#153#153#159'wwwpwwwp'#153#153
|
||||
+#153#159'wwwpwwwp'#153#153#153#159'wwwpwwwp'#153#153#153#159'wwwpwwwp'#153
|
||||
+#153#153#159'wwwpwwwp'#153#153#153#159'wwwpx'#0#0#0#153#153#153#152#136#136
|
||||
+#143'pw'#9#153#153#153#153#153#153#153#153#247'pwp'#153#153#153#153#153#153
|
||||
+#153#159'wpww'#9#153#153#153#153#153#153#247'wpwwp'#153#153#153#153#153#159
|
||||
+'wwpwww'#9#153#153#153#153#247'wwpwwwp'#153#153#153#159'wwwpwwww'#9#153#153
|
||||
+#247'wwwpwwwwp'#153#159'wwwwpwwwww'#9#247'wwwwpwwwww'#127'wwwwwpwwwwwwwwwwwp'
|
||||
+'wwwwwwwwwwwpwwwwwwwwwwwp'#9'NumGlyphs'#2#0#7'OnClick'#7#10'UpBtnClick'#8'Ta'
|
||||
+'bOrder'#2#3#0#0#7'TBitBtn'#7'DownBtn'#22'AnchorSideLeft.Control'#7#6'AddBtn'
|
||||
+#21'AnchorSideTop.Control'#7#5'UpBtn'#18'AnchorSideTop.Side'#7#9'asrBottom'
|
||||
+#23'AnchorSideRight.Control'#7#6'AddBtn'#20'AnchorSideRight.Side'#7#9'asrBot'
|
||||
+'tom'#4'Left'#3#197#0#6'Height'#2'$'#3'Top'#3#154#0#5'Width'#3#149#0#7'Ancho'
|
||||
,'rs'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#17'BorderSpacing.Top'#2
|
||||
+'tom'#4'Left'#3#12#1#6'Height'#2'$'#3'Top'#3#154#0#5'Width'#3#149#0#7'Anchor'
|
||||
,'s'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#17'BorderSpacing.Top'#2
|
||||
+#6#7'Caption'#6#10'&Move down'#10'Glyph.Data'#10#154#1#0#0#150#1#0#0'BM'#150
|
||||
+#1#0#0#0#0#0#0'v'#0#0#0'('#0#0#0#23#0#0#0#24#0#0#0#1#0#4#0#0#0#0#0' '#1#0#0#0
|
||||
+#0#0#0#0#0#0#0#16#0#0#0#16#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128
|
||||
+#0#0#0#128#0#128#0#128#128#0#0#192#192#192#0#128#128#128#0#0#0#200#0#0#255#0
|
||||
+#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0'wwwwwwwwwwwpw'
|
||||
+'wwwwwwwwwwpwwwwwwwwwwwpwwwwwwwwwwpwwwww'#9#247'wwwwpwwwwp'#153#159'wwwwpww'
|
||||
+'ww'#9#153#153#247'wwwpwwwp'#153#153#153#159'wwwpwww'#9#153#153#153#153#247
|
||||
+'wwpwwp'#153#153#153#153#153#159'wwpww'#9#153#153#153#153#153#153#247'wpwp'
|
||||
+#153#153#153#153#153#153#153#159'wpw'#9#153#153#153#153#153#153#153#153#247
|
||||
+'px'#0#0#0#153#153#153#152#136#136#143'pwwwp'#153#153#153#159'wwwpwwwp'#153
|
||||
+#153#153#159'wwwpwwwp'#153#153#153#159'wwwpwwwp'#153#153#153#159'wwwpwwwp'
|
||||
+#153#153#153#159'wwwpwwwp'#153#153#153#159'wwwpwwwx'#0#0#0#8'wwwpwwwwwwwwwww'
|
||||
+'pwwwwwwwwwwwpwwwwwwwwwwwp'#9'NumGlyphs'#2#0#7'OnClick'#7#12'DownBtnClick'#8
|
||||
+'TabOrder'#2#4#0#0#9'TComboBox'#9'ComboBox1'#22'AnchorSideLeft.Control'#7#6
|
||||
+'wwwwwwwwwwpwwwwwwwwwwwpwwwww'#127'wwwwwpwwwww'#9#247'wwwwpwwwwp'#153#159'ww'
|
||||
+'wwpwwww'#9#153#153#247'wwwpwwwp'#153#153#153#159'wwwpwww'#9#153#153#153#153
|
||||
+#247'wwpwwp'#153#153#153#153#153#159'wwpww'#9#153#153#153#153#153#153#247'wp'
|
||||
+'wp'#153#153#153#153#153#153#153#159'wpw'#9#153#153#153#153#153#153#153#153
|
||||
+#247'px'#0#0#0#153#153#153#152#136#136#143'pwwwp'#153#153#153#159'wwwpwwwp'
|
||||
+#153#153#153#159'wwwpwwwp'#153#153#153#159'wwwpwwwp'#153#153#153#159'wwwpwww'
|
||||
+'p'#153#153#153#159'wwwpwwwp'#153#153#153#159'wwwpwwwx'#0#0#0#8'wwwpwwwwwwww'
|
||||
+'wwwpwwwwwwwwwwwpwwwwwwwwwwwp'#9'NumGlyphs'#2#0#7'OnClick'#7#12'DownBtnClick'
|
||||
+#8'TabOrder'#2#4#0#0#9'TComboBox'#9'ComboBox1'#22'AnchorSideLeft.Control'#7#6
|
||||
+'Label4'#19'AnchorSideLeft.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7
|
||||
+#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Contro'
|
||||
+'l'#7#12'ButtonPanel1'#4'Left'#3#128#0#6'Height'#2#31#3'Top'#3#252#0#5'Width'
|
||||
+#3#193#1#7'Anchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.A'
|
||||
+'round'#2#6#10'ItemHeight'#2#0#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#5
|
||||
+#0#0#8'TListBox'#8'ListBox1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'Anchor'
|
||||
+'SideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#24'Ancho'
|
||||
+'rSideBottom.Control'#7#9'ComboBox1'#4'Left'#2#6#6'Height'#3#216#0#3'Top'#2
|
||||
+#30#5'Width'#3#185#0#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#20'Borde'
|
||||
+'rSpacing.Around'#2#6#10'ItemHeight'#2#0#10'OnDblClick'#7#16'ListBox1DblClic'
|
||||
+'k'#8'TabOrder'#2#6#8'TopIndex'#2#255#0#0#7'TBitBtn'#6'AddBtn'#22'AnchorSide'
|
||||
+'Left.Control'#7#8'ListBox1'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'Ancho'
|
||||
+'rSideTop.Control'#7#8'ListBox1'#4'Left'#3#197#0#6'Height'#2'#'#3'Top'#2#30#5
|
||||
+'Width'#3#149#0#8'AutoSize'#9#7'Caption'#6#18'&Add field to sort'#10'Glyph.D'
|
||||
+'ata'#10#142#1#0#0#138#1#0#0'BM'#138#1#0#0#0#0#0#0'v'#0#0#0'('#0#0#0#24#0#0#0
|
||||
+#23#0#0#0#1#0#4#0#0#0#0#0#20#1#0#0#0#0#0#0#0#0#0#0#16#0#0#0#16#0#0#0#0#0#0#0
|
||||
+#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0#192#192
|
||||
+#192#0#128#128#128#0#0#0#200#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0
|
||||
+#255#255#0#0#255#255#255#0'wwwwwwwwwwwwwwwwwwxwwwwwwwwwww'#0'wwwwwwwwwwp'#144
|
||||
+'wwwwwwwwww'#9#144'wwwwwwwwwp'#153#144'wwwwwwwww'#9#153#144'wwwwwwwwp'#153
|
||||
+#153#144#0#0#0#135'wwww'#9#153#153#153#153#153#153#7'wwwp'#153#153#153#153
|
||||
+#153#153#153#7'www'#9#153#153#153#153#153#153#153#7'ww'#153#153#153#153#153
|
||||
+#153#153#153#7'www'#249#153#153#153#153#153#153#153#7'www'#153#153#153#153
|
||||
+#153#153#153#7'wwww'#249#153#153#153#153#153#153#7'wwww'#153#153#152#255#255
|
||||
+#255#135'wwwww'#249#153#152'wwwwwwwww'#153#152'wwwwwwwwww'#249#152'wwwwwwww'
|
||||
+'ww'#152'wwwwwwwwwww'#248'wwwwwwwwwwwwwwwwwwwwwwwwwwww'#9'NumGlyphs'#2#0#7
|
||||
+'OnClick'#7#11'AddBtnClick'#8'TabOrder'#2#1#0#0#12'TButtonPanel'#12'ButtonPa'
|
||||
+'nel1'#4'Left'#2#6#6'Height'#2'*'#3'Top'#3'!'#1#5'Width'#3';'#2#8'TabOrder'#2
|
||||
+#7#11'ShowButtons'#11#4'pbOK'#8'pbCancel'#6'pbHelp'#0#0#0#0
|
||||
+'l'#7#9'CheckBox1'#4'Left'#3#128#0#6'Height'#2#31#3'Top'#3'/'#1#5'Width'#3'&'
|
||||
+#2#7'Anchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'
|
||||
+#2#6#10'ItemHeight'#2#0#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#5#0#0#8
|
||||
+'TListBox'#8'ListBox1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTo'
|
||||
+'p.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideR'
|
||||
+'ight.Control'#7#6'AddBtn'#24'AnchorSideBottom.Control'#7#9'ComboBox1'#4'Lef'
|
||||
+'t'#2#6#6'Height'#3#11#1#3'Top'#2#30#5'Width'#3#0#1#7'Anchors'#11#5'akTop'#6
|
||||
+'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#10'ItemHeight'
|
||||
+#2#0#10'OnDblClick'#7#16'ListBox1DblClick'#8'TabOrder'#2#6#8'TopIndex'#2#255
|
||||
+#0#0#7'TBitBtn'#6'AddBtn'#22'AnchorSideLeft.Control'#7#5'Owner'#19'AnchorSid'
|
||||
+'eLeft.Side'#7#9'asrCenter'#21'AnchorSideTop.Control'#7#8'ListBox1'#4'Left'#3
|
||||
+#12#1#6'Height'#2'#'#3'Top'#2#30#5'Width'#3#149#0#8'AutoSize'#9#7'Caption'#6
|
||||
+#18'&Add field to sort'#10'Glyph.Data'#10#142#1#0#0#138#1#0#0'BM'#138#1#0#0#0
|
||||
+#0#0#0'v'#0#0#0'('#0#0#0#24#0#0#0#23#0#0#0#1#0#4#0#0#0#0#0#20#1#0#0#0#0#0#0#0
|
||||
+#0#0#0#16#0#0#0#16#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0
|
||||
+#128#0#128#0#128#128#0#0#192#192#192#0#128#128#128#0#0#0#200#0#0#255#0#0#0
|
||||
+#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0'wwwwwwwwwwwwwwwww'
|
||||
+'wxwwwwwwwwwww'#0'wwwwwwwwwwp'#144'wwwwwwwwww'#9#144'wwwwwwwwwp'#153#144'www'
|
||||
+'wwwwww'#9#153#144'wwwwwwwwp'#153#153#144#0#0#0#135'wwww'#9#153#153#153#153
|
||||
+#153#153#7'wwwp'#153#153#153#153#153#153#153#7'www'#9#153#153#153#153#153#153
|
||||
+#153#7'ww'#127#153#153#153#153#153#153#153#153#7'www'#249#153#153#153#153#153
|
||||
+#153#153#7'www'#127#153#153#153#153#153#153#153#7'wwww'#249#153#153#153#153
|
||||
+#153#153#7'wwww'#127#153#153#152#255#255#255#135'wwwww'#249#153#152'wwwwwwww'
|
||||
+'w'#127#153#152'wwwwwwwwww'#249#152'wwwwwwwwww'#127#152'wwwwwwwwwww'#248'www'
|
||||
+'wwwwwwww'#127'wwwwwwwwwwwwwwwww'#9'NumGlyphs'#2#0#7'OnClick'#7#11'AddBtnCli'
|
||||
+'ck'#8'TabOrder'#2#1#0#0#12'TButtonPanel'#12'ButtonPanel1'#4'Left'#2#6#6'Hei'
|
||||
+'ght'#2'('#3'Top'#3'm'#1#5'Width'#3#160#2#8'TabOrder'#2#7#11'ShowButtons'#11
|
||||
+#4'pbOK'#8'pbCancel'#6'pbHelp'#0#0#0#9'TCheckBox'#9'CheckBox1'#22'AnchorSide'
|
||||
+'Left.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label4'#18'AnchorSid'
|
||||
+'eTop.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#12'ButtonPanel1'#4
|
||||
+'Left'#2#6#6'Height'#2#19#3'Top'#3'T'#1#5'Width'#3#163#0#7'Anchors'#11#6'akL'
|
||||
+'eft'#8'akBottom'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#21'Case insens'
|
||||
+'itive sort'#8'TabOrder'#2#8#0#0#0
|
||||
]);
|
||||
|
@ -15,6 +15,7 @@ type
|
||||
TrxSortByForm = class(TForm)
|
||||
AddBtn: TBitBtn;
|
||||
ButtonPanel1: TButtonPanel;
|
||||
CheckBox1: TCheckBox;
|
||||
ComboBox1: TComboBox;
|
||||
DownBtn: TBitBtn;
|
||||
Label1: TLabel;
|
||||
@ -90,6 +91,7 @@ begin
|
||||
RemoveBtn.Caption:=sRxSortByFormRemoveField;
|
||||
UpBtn.Caption:=sRxSortByFormMoveUpField;
|
||||
DownBtn.Caption:=sRxSortByFormMoveDnField;
|
||||
CheckBox1.Caption:=sRxSortByFormCaseInsens;
|
||||
end;
|
||||
|
||||
procedure TrxSortByForm.ListBox1DblClick(Sender: TObject);
|
||||
|
@ -41,19 +41,20 @@ type
|
||||
|
||||
{ TRxMemoryDataSortEngine }
|
||||
|
||||
TRxMemoryDataSortEngine = class(TExDBGridSortEngine)
|
||||
TRxMemoryDataSortEngine = class(TRxDBGridSortEngine)
|
||||
public
|
||||
procedure Sort(Field:TField; ADataSet:TDataSet; Asc:boolean);override;
|
||||
procedure Sort(Field:TField; ADataSet:TDataSet; Asc:boolean; SortOptions:TRxSortEngineOptions);override;
|
||||
procedure SortList(ListField:string; ADataSet:TDataSet; Asc:boolean);override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
uses rxmemds;
|
||||
|
||||
procedure TRxMemoryDataSortEngine.Sort(Field:TField; ADataSet:TDataSet; Asc:boolean);
|
||||
procedure TRxMemoryDataSortEngine.Sort(Field:TField; ADataSet:TDataSet;
|
||||
Asc:boolean; SortOptions:TRxSortEngineOptions);
|
||||
begin
|
||||
if Assigned(ADataSet) then
|
||||
(ADataSet as TRxMemoryData).SortOnFields(Field.FieldName, true, not Asc);
|
||||
(ADataSet as TRxMemoryData).SortOnFields(Field.FieldName, seoCaseInsensitiveSort in SortOptions, not Asc);
|
||||
end;
|
||||
|
||||
procedure TRxMemoryDataSortEngine.SortList(ListField: string;
|
||||
@ -64,6 +65,6 @@ begin
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterExDBGridSortEngine(TRxMemoryDataSortEngine, TRxMemoryData);
|
||||
RegisterRxDBGridSortEngine(TRxMemoryDataSortEngine, TRxMemoryData);
|
||||
end.
|
||||
|
||||
|
Reference in New Issue
Block a user