RxFPC:RxDBGrid - add PopUpMenu for RxCollumn

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7517 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2020-07-02 07:13:46 +00:00
parent 68f2d8718d
commit f3be18ee44
2 changed files with 184 additions and 154 deletions

View File

@ -620,6 +620,7 @@ type
FNotInKeyListIndex: integer;
FOnDrawColumnCell: TDrawColumnCellEvent;
FOptions: TRxColumnOptions;
FPopupMenu: TPopupMenu;
FSortFields: string;
FSortOrder: TSortMarker;
FSortPosition: integer;
@ -663,6 +664,7 @@ type
property SortFields: string read FSortFields write FSortFields;
property WordWrap:boolean read FWordWrap write SetWordWrap default false;
property OnDrawColumnCell: TDrawColumnCellEvent read FOnDrawColumnCell write FOnDrawColumnCell;
property PopupMenu: TPopupMenu read FPopupMenu write FPopupMenu;
end;
{ TRxDbGridColumns }
@ -970,6 +972,7 @@ type
function GetDefaultEditor(Column: Integer): TWinControl; override;
procedure PrepareCanvas(aCol, aRow: Integer; AState: TGridDrawState); override;
function GetPopupMenu: TPopupMenu; override;
{$IFDEF DEVELOPER_RX}
procedure InternalAdjustRowCount(var RecCount:integer); override;
{$ENDIF}
@ -3959,6 +3962,8 @@ begin
end;
procedure TRxDBGrid.Notification(AComponent: TComponent; Operation: TOperation);
var
C: TRxColumn;
begin
inherited Notification(AComponent, Operation);
if Assigned(Datalink) and (AComponent = DataSource) and (Operation = opRemove) then
@ -3966,8 +3971,18 @@ begin
ShowMessage('i');
end
else
if (Operation = opRemove) and (AComponent is TRxDBGridAbstractTools) then
RemoveTools(TRxDBGridAbstractTools(AComponent));
if (Operation = opRemove) then
begin
if (AComponent is TRxDBGridAbstractTools) then
RemoveTools(TRxDBGridAbstractTools(AComponent))
else
if (AComponent is TPopupMenu) then
begin
for C in Columns do
if C.PopupMenu = AComponent then
C.PopupMenu:=nil;
end;
end;
end;
function TRxDBGrid.UpdateRowsHeight: integer;
@ -6833,6 +6848,21 @@ begin
end;
end;
function TRxDBGrid.GetPopupMenu: TPopupMenu;
var
C: TRxColumn;
R: TPoint;
C1: TGridCoord;
begin
R:=ScreenToClient(Mouse.CursorPos);
C1:=MouseCoord(R.X, R.Y);
C:=TRxColumn(ColumnFromGridColumn(C1.X));
if Assigned(C) and Assigned(C.PopupMenu) then
Result:=C.PopupMenu
else
Result:=inherited GetPopupMenu;
end;
{$IFDEF DEVELOPER_RX}
type
THackDataLink = class(TDataLink)

View File

@ -25,311 +25,311 @@
Copyright (c) 1998 Master-Bank
translate to Lazarus by alexs in 2005 - 2020"/>
<License Value="LGPL"/>
<Version Major="3" Minor="3" Release="2" Build="222"/>
<Files Count="70">
<Item1>
<Version Major="3" Minor="3" Release="3" Build="225"/>
<Files>
<Item>
<Filename Value="registerrx.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="registerrx"/>
</Item1>
<Item2>
</Item>
<Item>
<Filename Value="registerrxdb.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="RegisterRxDB"/>
</Item2>
<Item3>
</Item>
<Item>
<Filename Value="registerrxtools.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="RegisterRxTools"/>
</Item3>
<Item4>
</Item>
<Item>
<Filename Value="rx.inc"/>
<Type Value="Include"/>
</Item4>
<Item5>
</Item>
<Item>
<Filename Value="rxcontrols\rxhistorynavigator.pas"/>
<UnitName Value="RxHistoryNavigator"/>
</Item5>
<Item6>
</Item>
<Item>
<Filename Value="rxcontrols\rxaboutdialog.pas"/>
<UnitName Value="RxAboutDialog"/>
</Item6>
<Item7>
</Item>
<Item>
<Filename Value="rxcontrols\rxaboutformunit.pas"/>
<UnitName Value="rxAboutFormUnit"/>
</Item7>
<Item8>
</Item>
<Item>
<Filename Value="rxcontrols\rxclock.pas"/>
<UnitName Value="rxclock"/>
</Item8>
<Item9>
</Item>
<Item>
<Filename Value="rxcontrols\rxcloseformvalidator.pas"/>
<UnitName Value="RxCloseFormValidator"/>
</Item9>
<Item10>
</Item>
<Item>
<Filename Value="rxcontrols\rxapputils.pas"/>
<UnitName Value="rxAppUtils"/>
</Item10>
<Item11>
</Item>
<Item>
<Filename Value="rxcontrols\rxautopanel.pas"/>
<UnitName Value="RxAutoPanel"/>
</Item11>
<Item12>
</Item>
<Item>
<Filename Value="rxcontrols\rxboxprocs.pas"/>
<UnitName Value="rxboxprocs"/>
</Item12>
<Item13>
</Item>
<Item>
<Filename Value="rxcontrols\rxctrls.pas"/>
<UnitName Value="rxctrls"/>
</Item13>
<Item14>
</Item>
<Item>
<Filename Value="rxcontrols\rxcurredit.pas"/>
<UnitName Value="rxcurredit"/>
</Item14>
<Item15>
</Item>
<Item>
<Filename Value="rxcontrols\rxdaterangeeditunit.pas"/>
<UnitName Value="rxDateRangeEditUnit"/>
</Item15>
<Item16>
</Item>
<Item>
<Filename Value="rxcontrols\rxversinfo.pas"/>
<UnitName Value="RxVersInfo"/>
</Item16>
<Item17>
</Item>
<Item>
<Filename Value="rxcontrols\rxviewspanel.pas"/>
<UnitName Value="RxViewsPanel"/>
</Item17>
<Item18>
</Item>
<Item>
<Filename Value="rxdb\ex_rx_bin_datapacket.pas"/>
<UnitName Value="ex_rx_bin_datapacket"/>
</Item18>
<Item19>
</Item>
<Item>
<Filename Value="rxdb\ex_rx_datapacket.pas"/>
<UnitName Value="ex_rx_datapacket"/>
</Item19>
<Item20>
</Item>
<Item>
<Filename Value="rxdb\ex_rx_xml_datapacket.pas"/>
<UnitName Value="ex_rx_xml_datapacket"/>
</Item20>
<Item21>
</Item>
<Item>
<Filename Value="rxdb\rxdbcolorbox.pas"/>
<UnitName Value="RxDBColorBox"/>
</Item21>
<Item22>
</Item>
<Item>
<Filename Value="rxdb\rxdbcomb.pas"/>
<UnitName Value="rxdbcomb"/>
</Item22>
<Item23>
</Item>
<Item>
<Filename Value="rxdb\rxdbctrls.pas"/>
<UnitName Value="RxDBCtrls"/>
</Item23>
<Item24>
</Item>
<Item>
<Filename Value="rxdb\rxdbcurredit.pas"/>
<UnitName Value="rxdbcurredit"/>
</Item24>
<Item25>
</Item>
<Item>
<Filename Value="rxdb\rxdbdateedit.pas"/>
<UnitName Value="rxdbdateedit"/>
</Item25>
<Item26>
</Item>
<Item>
<Filename Value="rxdb\rxdbgrid.pas"/>
<UnitName Value="rxdbgrid"/>
</Item26>
<Item27>
<UnitName Value="RxDBGrid"/>
</Item>
<Item>
<Filename Value="rxdb\rxdbgrid.res"/>
<Type Value="Binary"/>
</Item27>
<Item28>
</Item>
<Item>
<Filename Value="rxdb\rxdbgrid_columsunit.pas"/>
<UnitName Value="rxdbgrid_columsunit"/>
</Item28>
<Item29>
</Item>
<Item>
<Filename Value="rxdb\rxdbgrid_findunit.pas"/>
<UnitName Value="rxdbgrid_findunit"/>
</Item29>
<Item30>
</Item>
<Item>
<Filename Value="rxdb\exsortmds.pas"/>
<UnitName Value="exsortmds"/>
</Item30>
<Item31>
</Item>
<Item>
<Filename Value="rxdb\rxdbgridexportpdf.pas"/>
<UnitName Value="RxDBGridExportPdf"/>
</Item31>
<Item32>
</Item>
<Item>
<Filename Value="rxdb\rxdbgridexportpdfsetupunit.pas"/>
<UnitName Value="RxDBGridExportPdfSetupUnit"/>
</Item32>
<Item33>
</Item>
<Item>
<Filename Value="rxdb\rxdbgridfootertools.pas"/>
<UnitName Value="RxDBGridFooterTools"/>
</Item33>
<Item34>
</Item>
<Item>
<Filename Value="rxdb\rxdbgridfootertools_setup.pas"/>
<UnitName Value="rxdbgridfootertools_setup"/>
</Item34>
<Item35>
</Item>
<Item>
<Filename Value="rxdb\rxdbspinedit.pas"/>
<UnitName Value="RxDBSpinEdit"/>
</Item35>
<Item36>
</Item>
<Item>
<Filename Value="rxdb\rxdbtimeedit.pas"/>
<UnitName Value="RxDBTimeEdit"/>
</Item36>
<Item37>
</Item>
<Item>
<Filename Value="rxdb\rxdbutils.pas"/>
<UnitName Value="rxdbutils"/>
</Item37>
<Item38>
</Item>
<Item>
<Filename Value="rxdb\rxfilterby.pas"/>
<UnitName Value="rxfilterby"/>
</Item38>
<Item39>
</Item>
<Item>
<Filename Value="rxdb\rxlookup.pas"/>
<UnitName Value="rxlookup"/>
</Item39>
<Item40>
</Item>
<Item>
<Filename Value="rxdb\rxmemds.pas"/>
<UnitName Value="rxmemds"/>
</Item40>
<Item41>
</Item>
<Item>
<Filename Value="rxdb\rxpopupunit.pas"/>
<UnitName Value="rxpopupunit"/>
</Item41>
<Item42>
</Item>
<Item>
<Filename Value="rxdb\rxseldsfrm.pas"/>
<UnitName Value="rxseldsfrm"/>
</Item42>
<Item43>
</Item>
<Item>
<Filename Value="rxdb\rxsortby.pas"/>
<UnitName Value="rxsortby"/>
</Item43>
<Item44>
</Item>
<Item>
<Filename Value="rxdb\rxsortmemds.pas"/>
<UnitName Value="rxsortmemds"/>
</Item44>
<Item45>
</Item>
<Item>
<Filename Value="rxcontrols\rxdice.pas"/>
<UnitName Value="rxDice"/>
</Item45>
<Item46>
</Item>
<Item>
<Filename Value="rxcontrols\rxduallist.pas"/>
<UnitName Value="rxduallist"/>
</Item46>
<Item47>
</Item>
<Item>
<Filename Value="rxcontrols\rxfduallst.pas"/>
<UnitName Value="rxfduallst"/>
</Item47>
<Item48>
</Item>
<Item>
<Filename Value="rxcontrols\rxfolderlister.pas"/>
<UnitName Value="rxfolderlister"/>
</Item48>
<Item49>
</Item>
<Item>
<Filename Value="rxcontrols\rxhistory.pas"/>
<UnitName Value="RXHistory"/>
</Item49>
<Item50>
</Item>
<Item>
<Filename Value="rxcontrols\rxinipropstorage.pas"/>
<UnitName Value="RxIniPropStorage"/>
</Item50>
<Item51>
</Item>
<Item>
<Filename Value="rxcontrols\rxlclconst.pas"/>
<UnitName Value="rxlclconst"/>
</Item51>
<Item52>
</Item>
<Item>
<Filename Value="rxcontrols\rxlogin.pas"/>
<UnitName Value="rxlogin"/>
</Item52>
<Item53>
</Item>
<Item>
<Filename Value="rxcontrols\rxmdi.pas"/>
<UnitName Value="RxMDI"/>
</Item53>
<Item54>
</Item>
<Item>
<Filename Value="rxcontrols\rxpagemngr.pas"/>
<UnitName Value="rxpagemngr"/>
</Item54>
<Item55>
</Item>
<Item>
<Filename Value="rxcontrols\rxpickdate.pas"/>
<UnitName Value="rxpickdate"/>
</Item55>
<Item56>
</Item>
<Item>
<Filename Value="rxcontrols\rxshortcutunit.pas"/>
<UnitName Value="rxShortCutUnit"/>
</Item56>
<Item57>
</Item>
<Item>
<Filename Value="rxcontrols\rxspin.pas"/>
<UnitName Value="rxspin"/>
</Item57>
<Item58>
</Item>
<Item>
<Filename Value="rxcontrols\rxswitch.pas"/>
<UnitName Value="rxswitch"/>
</Item58>
<Item59>
</Item>
<Item>
<Filename Value="rxcontrols\rxsystemservices.pas"/>
<UnitName Value="RxSystemServices"/>
</Item59>
<Item60>
</Item>
<Item>
<Filename Value="rxcontrols\rxtbrsetup.pas"/>
<UnitName Value="rxtbrsetup"/>
</Item60>
<Item61>
</Item>
<Item>
<Filename Value="rxcontrols\rxtimeedit.pas"/>
<UnitName Value="RxTimeEdit"/>
</Item61>
<Item62>
</Item>
<Item>
<Filename Value="rxcontrols\rxtoolbar.pas"/>
<UnitName Value="rxtoolbar"/>
</Item62>
<Item63>
</Item>
<Item>
<Filename Value="rxcontrols\rxtooledit.pas"/>
<UnitName Value="rxtooledit"/>
</Item63>
<Item64>
</Item>
<Item>
<Filename Value="rxdb\rxdbgrid_popupfilterunit.pas"/>
<UnitName Value="RxDBGrid_PopUpFilterUnit"/>
</Item64>
<Item65>
</Item>
<Item>
<Filename Value="rxdb\rxdbverticalgrid.pas"/>
<UnitName Value="rxdbverticalgrid"/>
</Item65>
<Item66>
</Item>
<Item>
<Filename Value="rxcontrols\rxlclutils.pas"/>
<UnitName Value="rxlclutils"/>
</Item66>
<Item67>
</Item>
<Item>
<Filename Value="rxcontrols\rxrangesel.pas"/>
<UnitName Value="RxRangeSel"/>
</Item67>
<Item68>
</Item>
<Item>
<Filename Value="rxcontrols\rxxmlpropstorage.pas"/>
<UnitName Value="RxXMLPropStorage"/>
</Item68>
<Item69>
</Item>
<Item>
<Filename Value="rxcontrols\rxswitch.res"/>
<Type Value="Binary"/>
</Item69>
<Item70>
</Item>
<Item>
<Filename Value="rxcontrols\rxpopupnotifier.pas"/>
<UnitName Value="RxPopupNotifier"/>
</Item70>
</Item>
</Files>
<LazDoc Paths="docs;\usr\local\share\lazarus\components\rxnew\docs"/>
<i18n>
<EnableI18N Value="True"/>
<OutDir Value="languages"/>
</i18n>
<RequiredPkgs Count="4">
<Item1>
<RequiredPkgs>
<Item>
<PackageName Value="rxtools"/>
</Item1>
<Item2>
</Item>
<Item>
<PackageName Value="FCL"/>
<MinVersion Major="1" Valid="True"/>
</Item2>
<Item3>
</Item>
<Item>
<PackageName Value="IDEIntf"/>
</Item3>
<Item4>
</Item>
<Item>
<PackageName Value="LCL"/>
</Item4>
</Item>
</RequiredPkgs>
<UsageOptions>
<UnitPath Value="$(PkgOutDir)"/>