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