You've already forked lazarus-ccr
1. RxDBGrid - create new shortcat - Ctrl+A - select all rows
2. RxDBGrid - new procedure - SelectAllRows 3. RxDBGrid - try to fix error with edit Lockup filed in modal dialogs 4. RxDBGrid - add new key strokes: rxgcSelectAll - select all rows rxgcDeSelectAll - deselect all rows rxgcInvertSelection - invert selection rxgcOptimizeColumnsWidth - Optimize all columns width 5. New packet (rx_sort_fbdataset.lpk) and component (TRxSortFBDataSet) - add to project sort engine for FBDataSet git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2536 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -296,6 +296,10 @@ msgstr "Mover columna seleccionada para arriba"
|
||||
msgid "Move selected column down"
|
||||
msgstr "Mover columna seleccionada para abajo"
|
||||
|
||||
#: rxdconst.srxdbgridselectallrows
|
||||
msgid "Select all rows"
|
||||
msgstr ""
|
||||
|
||||
#: rxdconst.srxdbgridselectcolumns
|
||||
msgid "Select visible collumns"
|
||||
msgstr "Seleccionar Columnas Visibles"
|
||||
|
@@ -296,6 +296,10 @@ msgstr ""
|
||||
msgid "Move selected column down"
|
||||
msgstr ""
|
||||
|
||||
#: rxdconst.srxdbgridselectallrows
|
||||
msgid "Select all rows"
|
||||
msgstr ""
|
||||
|
||||
#: rxdconst.srxdbgridselectcolumns
|
||||
msgid "Select visible collumns"
|
||||
msgstr ""
|
||||
|
@@ -296,6 +296,10 @@ msgstr "Переместить выбранное поле выше"
|
||||
msgid "Move selected column down"
|
||||
msgstr "Переместить выбранное поле ниже"
|
||||
|
||||
#: rxdconst.srxdbgridselectallrows
|
||||
msgid "Select all rows"
|
||||
msgstr "Выделить все строки"
|
||||
|
||||
#: rxdconst.srxdbgridselectcolumns
|
||||
msgid "Select visible collumns"
|
||||
msgstr "Выбор столбцов для отображения"
|
||||
|
47
components/rx/rx_sort_fbdataset.lpk
Normal file
47
components/rx/rx_sort_fbdataset.lpk
Normal file
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0"?>
|
||||
<CONFIG>
|
||||
<Package Version="4">
|
||||
<Name Value="rx_sort_fbdataset"/>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<SearchPaths>
|
||||
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)/"/>
|
||||
</SearchPaths>
|
||||
<Other>
|
||||
<CompilerMessages>
|
||||
<MsgFileName Value=""/>
|
||||
</CompilerMessages>
|
||||
<CompilerPath Value="$(CompPath)"/>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Files Count="2">
|
||||
<Item1>
|
||||
<Filename Value="rxsortfbdataset.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="RxSortFBDataSet"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Filename Value="exsortfb.pas"/>
|
||||
<UnitName Value="exsortfb"/>
|
||||
</Item2>
|
||||
</Files>
|
||||
<Type Value="RunAndDesignTime"/>
|
||||
<RequiredPkgs Count="3">
|
||||
<Item1>
|
||||
<PackageName Value="rxnew"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="fbdemofpc"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<PackageName Value="FCL"/>
|
||||
</Item3>
|
||||
</RequiredPkgs>
|
||||
<UsageOptions>
|
||||
<UnitPath Value="$(PkgOutDir)"/>
|
||||
</UsageOptions>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
</PublishOptions>
|
||||
</Package>
|
||||
</CONFIG>
|
21
components/rx/rx_sort_fbdataset.pas
Normal file
21
components/rx/rx_sort_fbdataset.pas
Normal file
@@ -0,0 +1,21 @@
|
||||
{ This file was automatically created by Lazarus. Do not edit!
|
||||
This source is only used to compile and install the package.
|
||||
}
|
||||
|
||||
unit rx_sort_fbdataset;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
RxSortFBDataSet, exsortfb, LazarusPackageIntf;
|
||||
|
||||
implementation
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
RegisterUnit('RxSortFBDataSet', @RxSortFBDataSet.Register);
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterPackage('rx_sort_fbdataset', @Register);
|
||||
end.
|
@@ -102,7 +102,9 @@ type
|
||||
|
||||
TRxDBGridCommand = (rxgcNone, rxgcShowFindDlg, rxgcShowColumnsDlg,
|
||||
rxgcShowFilterDlg, rxgcShowSortDlg, rxgcShowQuickFilter,
|
||||
rxgcHideQuickFilter
|
||||
rxgcHideQuickFilter, rxgcSelectAll, rxgcDeSelectAll, rxgcInvertSelection,
|
||||
rxgcOptimizeColumnsWidth
|
||||
|
||||
);
|
||||
|
||||
TRxDSState = (rxdsInactive, rxdsActive);
|
||||
@@ -596,6 +598,7 @@ type
|
||||
procedure OnFilterClose(Sender: TObject);
|
||||
procedure OnSortBy(Sender: TObject);
|
||||
procedure OnChooseVisibleFields(Sender: TObject);
|
||||
procedure OnSelectAllRows(Sender: TObject);
|
||||
procedure Loaded; override;
|
||||
procedure UpdateFooterRowOnUpdateActive;
|
||||
|
||||
@@ -620,6 +623,9 @@ type
|
||||
procedure UpdateTitleHight;
|
||||
procedure GetOnCreateLookup;
|
||||
procedure GetOnDisplayLookup;
|
||||
procedure SelectAllRows;
|
||||
procedure DeSelectAllRows;
|
||||
procedure InvertSelection;
|
||||
|
||||
property Canvas;
|
||||
property DefaultTextStyle;
|
||||
@@ -765,7 +771,7 @@ uses Math, rxdconst, rxstrutils, rxdbgrid_findunit, rxdbgrid_columsunit,
|
||||
rxlookup, tooledit, LCLProc, rxfilterby, rxsortby;
|
||||
|
||||
const
|
||||
EditorCommandStrs: array[0..6] of TIdentMapEntry =
|
||||
EditorCommandStrs: array[0..10] of TIdentMapEntry =
|
||||
(
|
||||
(Value: Ord(rxgcNone); Name: 'rxcgNone'),
|
||||
(Value: Ord(rxgcShowFindDlg); Name: 'rxgcShowFindDlg'),
|
||||
@@ -773,7 +779,11 @@ const
|
||||
(Value: Ord(rxgcShowFilterDlg); Name: 'rxgcShowFilterDlg'),
|
||||
(Value: Ord(rxgcShowSortDlg); Name: 'rxgcShowSortDlg'),
|
||||
(Value: Ord(rxgcShowQuickFilter); Name: 'rxgcShowQuickFilter'),
|
||||
(Value: Ord(rxgcHideQuickFilter); Name: 'rxgcHideQuickFilter')
|
||||
(Value: Ord(rxgcHideQuickFilter); Name: 'rxgcHideQuickFilter'),
|
||||
(Value: Ord(rxgcSelectAll); Name: 'rxgcSelectAll'),
|
||||
(Value: Ord(rxgcDeSelectAll); Name: 'rxgcDeSelectAll'),
|
||||
(Value: Ord(rxgcInvertSelection); Name: 'rxgcInvertSelection'),
|
||||
(Value: Ord(rxgcOptimizeColumnsWidth); Name: 'rxgcOptimizeColumnsWidth')
|
||||
);
|
||||
|
||||
var
|
||||
@@ -1589,6 +1599,7 @@ begin
|
||||
CreateMenuItem(#0, '-', nil);
|
||||
CreateMenuItem('C', sRxDBGridSortByColumns, @OnSortBy);
|
||||
CreateMenuItem('W', sRxDBGridSelectColumns, @OnChooseVisibleFields);
|
||||
CreateMenuItem('A', sRxDBGridSelectAllRows, @OnSelectAllRows);
|
||||
end;
|
||||
|
||||
function TRxDBGrid.GetPropertyStorage: TCustomPropertyStorage;
|
||||
@@ -2063,6 +2074,7 @@ begin
|
||||
F_PopupMenu.Items[3].ShortCut := DoShortCut(rxgcHideQuickFilter);
|
||||
F_PopupMenu.Items[5].ShortCut := DoShortCut(rxgcShowSortDlg);
|
||||
F_PopupMenu.Items[6].ShortCut := DoShortCut(rxgcShowColumnsDlg);
|
||||
F_PopupMenu.Items[7].ShortCut := DoShortCut(rxgcSelectAll);
|
||||
end;
|
||||
|
||||
function TRxDBGrid.SortEngineOptions: TRxSortEngineOptions;
|
||||
@@ -3167,8 +3179,12 @@ begin
|
||||
rxgcShowQuickFilter: DoShowQuickFilter;
|
||||
rxgcHideQuickFilter: OnFilterClose(Self);
|
||||
rxgcShowSortDlg: OnSortBy(Self);
|
||||
else
|
||||
exit;
|
||||
rxgcSelectAll: SelectAllRows;
|
||||
rxgcDeSelectAll: DeSelectAllRows;
|
||||
rxgcInvertSelection:InvertSelection;
|
||||
rxgcOptimizeColumnsWidth:OptimizeColumnsWidthAll;
|
||||
else
|
||||
exit;
|
||||
end;
|
||||
Key := 0;
|
||||
end;
|
||||
@@ -3739,6 +3755,11 @@ begin
|
||||
ShowColumnsDialog;
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.OnSelectAllRows(Sender: TObject);
|
||||
begin
|
||||
SelectAllRows;
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.Loaded;
|
||||
begin
|
||||
inherited Loaded;
|
||||
@@ -3830,6 +3851,76 @@ begin
|
||||
if Assigned(F_DisplayLookup) then
|
||||
F_DisplayLookup(FRxDbGridLookupComboEditor);
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.SelectAllRows;
|
||||
var
|
||||
P:TBookMark;
|
||||
begin
|
||||
if DatalinkActive then
|
||||
begin
|
||||
DataSource.DataSet.DisableControls;
|
||||
P:=DataSource.DataSet.Bookmark;
|
||||
try
|
||||
DataSource.DataSet.First;
|
||||
while not DataSource.DataSet.EOF do
|
||||
begin
|
||||
SelectedRows.CurrentRowSelected:=true;
|
||||
DataSource.DataSet.Next;
|
||||
end;
|
||||
finally
|
||||
DataSource.DataSet.Bookmark:=P;
|
||||
DataSource.DataSet.EnableControls;
|
||||
end;
|
||||
Invalidate;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.DeSelectAllRows;
|
||||
var
|
||||
P:TBookMark;
|
||||
begin
|
||||
if DatalinkActive then
|
||||
begin
|
||||
DataSource.DataSet.DisableControls;
|
||||
P:=DataSource.DataSet.Bookmark;
|
||||
try
|
||||
DataSource.DataSet.First;
|
||||
while not DataSource.DataSet.EOF do
|
||||
begin
|
||||
SelectedRows.CurrentRowSelected:=false;
|
||||
DataSource.DataSet.Next;
|
||||
end;
|
||||
finally
|
||||
DataSource.DataSet.Bookmark:=P;
|
||||
DataSource.DataSet.EnableControls;
|
||||
end;
|
||||
Invalidate;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRxDBGrid.InvertSelection;
|
||||
var
|
||||
P:TBookMark;
|
||||
begin
|
||||
if DatalinkActive then
|
||||
begin
|
||||
DataSource.DataSet.DisableControls;
|
||||
P:=DataSource.DataSet.Bookmark;
|
||||
try
|
||||
DataSource.DataSet.First;
|
||||
while not DataSource.DataSet.EOF do
|
||||
begin
|
||||
SelectedRows.CurrentRowSelected:=not SelectedRows.CurrentRowSelected;
|
||||
DataSource.DataSet.Next;
|
||||
end;
|
||||
finally
|
||||
DataSource.DataSet.Bookmark:=P;
|
||||
DataSource.DataSet.EnableControls;
|
||||
end;
|
||||
Invalidate;
|
||||
end;
|
||||
end;
|
||||
|
||||
//!!!
|
||||
constructor TRxDBGrid.Create(AOwner: TComponent);
|
||||
begin
|
||||
@@ -4704,6 +4795,10 @@ begin
|
||||
AddE(rxgcShowSortDlg, Menus.ShortCut(Ord('S'), [ssCtrl]));
|
||||
AddE(rxgcShowQuickFilter, Menus.ShortCut(Ord('Q'), [ssCtrl]));
|
||||
AddE(rxgcHideQuickFilter, Menus.ShortCut(Ord('H'), [ssCtrl]));
|
||||
AddE(rxgcSelectAll, Menus.ShortCut(Ord('A'), [ssCtrl]));
|
||||
AddE(rxgcDeSelectAll, Menus.ShortCut(Ord('-'), [ssCtrl]));
|
||||
AddE(rxgcInvertSelection, Menus.ShortCut(Ord('*'), [ssCtrl]));
|
||||
AddE(rxgcOptimizeColumnsWidth, Menus.ShortCut(Ord('+'), [ssCtrl]));
|
||||
end;
|
||||
|
||||
function TRxDBGridKeyStrokes.FindRxCommand(AKey: word;
|
||||
|
@@ -110,6 +110,7 @@ resourcestring
|
||||
sRxDBGridSortByColumns = 'Sort data for collumns';// Ctrl+C';'Ordenar por Columnas Ctrl+C';
|
||||
sRxDBGridSelectColumns = 'Select visible collumns';// Ctrl+W';'Seleccionar Columnas Ctrl+W';
|
||||
sRxDBGridEmptiFilter = '(Empty)';
|
||||
sRxDBGridSelectAllRows = 'Select all rows';// Ctrl+W';'Seleccionar Columnas Ctrl+W';
|
||||
|
||||
//RxDBGrid filter form
|
||||
sRxFilterFormSelectExp = 'Enter filter expression for data in table:';
|
||||
|
@@ -1204,6 +1204,7 @@ begin
|
||||
if AResult and Assigned(FDataLink.DataSource) then
|
||||
begin
|
||||
FDataLink.Edit;
|
||||
Visible:=true;
|
||||
NeedUpdateData;//We need to update DataField;
|
||||
end;
|
||||
|
||||
|
32
components/rx/rxsortfbdataset.pas
Normal file
32
components/rx/rxsortfbdataset.pas
Normal file
@@ -0,0 +1,32 @@
|
||||
unit RxSortFBDataSet;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils;
|
||||
|
||||
type
|
||||
TRxSortFBDataSet = class(TComponent)
|
||||
private
|
||||
{ Private declarations }
|
||||
protected
|
||||
{ Protected declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
published
|
||||
{ Published declarations }
|
||||
end;
|
||||
|
||||
procedure Register;
|
||||
|
||||
implementation
|
||||
uses exsortfb;
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
RegisterComponents('RX DBAware',[TRxSortFBDataSet]);
|
||||
end;
|
||||
|
||||
end.
|
Reference in New Issue
Block a user