new style for shortcut in rxdbgrid tools

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1225 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2010-05-19 15:33:28 +00:00
parent 3010f3d960
commit 656ed83de3
11 changed files with 704 additions and 252 deletions

View File

@ -13,7 +13,7 @@
<ResourceType Value="res"/>
<UseXPManifest Value="True"/>
<Icon Value="0"/>
<ActiveEditorIndexAtStart Value="1"/>
<ActiveWindowIndexAtStart Value="0"/>
</General>
<VersionInfo>
<UseVersionInfo Value="True"/>
@ -52,14 +52,14 @@
<MinVersion Major="1" Release="18" Build="56" Valid="True"/>
</Item4>
</RequiredPackages>
<Units Count="51">
<Units Count="59">
<Unit0>
<Filename Value="RxDBGridDemo.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="RxDBGridDemo"/>
<CursorPos X="5" Y="17"/>
<TopLine Value="1"/>
<UsageCount Value="40"/>
<CursorPos X="5" Y="17"/>
<UsageCount Value="44"/>
</Unit0>
<Unit1>
<Filename Value="rxdbgridmainunit.pas"/>
@ -67,37 +67,38 @@
<ComponentName Value="RxDBGridMainForm"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="RxDBGridMainUnit"/>
<CursorPos X="9" Y="175"/>
<TopLine Value="173"/>
<EditorIndex Value="0"/>
<UsageCount Value="40"/>
<WindowIndex Value="0"/>
<TopLine Value="148"/>
<CursorPos X="15" Y="157"/>
<UsageCount Value="44"/>
<Loaded Value="True"/>
</Unit1>
<Unit2>
<Filename Value="../../../../fpcsrc/fcl/db/db.pp"/>
<UnitName Value="db"/>
<CursorPos X="17" Y="1116"/>
<TopLine Value="1112"/>
<CursorPos X="17" Y="1116"/>
<UsageCount Value="9"/>
</Unit2>
<Unit3>
<Filename Value="../../../../fpcsrc/fcl/db/dataset.inc"/>
<CursorPos X="21" Y="1139"/>
<TopLine Value="1134"/>
<CursorPos X="21" Y="1139"/>
<UsageCount Value="9"/>
</Unit3>
<Unit4>
<Filename Value="../../rxmemds.pas"/>
<UnitName Value="rxmemds"/>
<CursorPos X="1" Y="356"/>
<TopLine Value="337"/>
<CursorPos X="1" Y="356"/>
<UsageCount Value="9"/>
</Unit4>
<Unit5>
<Filename Value="../../rxdbgrid.pas"/>
<UnitName Value="rxdbgrid"/>
<CursorPos X="51" Y="1022"/>
<TopLine Value="1007"/>
<CursorPos X="51" Y="1022"/>
<UsageCount Value="13"/>
<Bookmarks Count="2">
<Item0 X="1" Y="1089" ID="1"/>
@ -107,74 +108,74 @@
<Unit6>
<Filename Value="../../../../lcl/lresources.pp"/>
<UnitName Value="LResources"/>
<CursorPos X="1" Y="2644"/>
<TopLine Value="2626"/>
<CursorPos X="1" Y="2644"/>
<UsageCount Value="9"/>
</Unit6>
<Unit7>
<Filename Value="../../../../lcl/grids.pas"/>
<UnitName Value="Grids"/>
<CursorPos X="33" Y="394"/>
<TopLine Value="385"/>
<CursorPos X="33" Y="394"/>
<UsageCount Value="10"/>
</Unit7>
<Unit8>
<Filename Value="../../../../lcl/dbgrids.pas"/>
<UnitName Value="DBGrids"/>
<CursorPos X="30" Y="199"/>
<TopLine Value="187"/>
<CursorPos X="30" Y="199"/>
<UsageCount Value="10"/>
</Unit8>
<Unit9>
<Filename Value="../../rxpopupunit.pas"/>
<UnitName Value="rxpopupunit"/>
<CursorPos X="15" Y="249"/>
<TopLine Value="246"/>
<CursorPos X="15" Y="249"/>
<UsageCount Value="10"/>
</Unit9>
<Unit10>
<Filename Value="../../../../lcl/include/wincontrol.inc"/>
<CursorPos X="1" Y="7236"/>
<TopLine Value="7217"/>
<CursorPos X="1" Y="7236"/>
<UsageCount Value="9"/>
</Unit10>
<Unit11>
<Filename Value="../../../../lcl/include/control.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="9"/>
</Unit11>
<Unit12>
<Filename Value="../../../../lcl/lclmessageglue.pas"/>
<UnitName Value="LCLMessageGlue"/>
<CursorPos X="46" Y="96"/>
<TopLine Value="92"/>
<CursorPos X="46" Y="96"/>
<UsageCount Value="9"/>
</Unit12>
<Unit13>
<Filename Value="../../../../lcl/controls.pp"/>
<UnitName Value="Controls"/>
<CursorPos X="60" Y="1798"/>
<TopLine Value="1779"/>
<CursorPos X="60" Y="1798"/>
<UsageCount Value="9"/>
</Unit13>
<Unit14>
<Filename Value="../../../../../../install/2/rxdbgrid.diff"/>
<CursorPos X="1" Y="21"/>
<TopLine Value="1"/>
<UsageCount Value="9"/>
<CursorPos X="1" Y="21"/>
<SyntaxHighlighter Value="None"/>
<UsageCount Value="9"/>
</Unit14>
<Unit15>
<Filename Value="../../../../lcl/interfaces/gtk/gtkdevicecontext.inc"/>
<CursorPos X="1" Y="644"/>
<TopLine Value="626"/>
<CursorPos X="1" Y="644"/>
<UsageCount Value="9"/>
</Unit15>
<Unit16>
<Filename Value="../../../../lcl/interfaces/gtk2/gtk2winapi.inc"/>
<CursorPos X="1" Y="577"/>
<TopLine Value="559"/>
<CursorPos X="1" Y="577"/>
<UsageCount Value="9"/>
</Unit16>
<Unit17>
@ -183,76 +184,76 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="rxdbgrid_columsunit"/>
<CursorPos X="46" Y="45"/>
<TopLine Value="26"/>
<CursorPos X="46" Y="45"/>
<UsageCount Value="9"/>
</Unit17>
<Unit18>
<Filename Value="../../rxdconst.pas"/>
<UnitName Value="rxdconst"/>
<CursorPos X="15" Y="155"/>
<TopLine Value="126"/>
<CursorPos X="15" Y="155"/>
<UsageCount Value="9"/>
</Unit18>
<Unit19>
<Filename Value="../../../../lcl/include/winapih.inc"/>
<CursorPos X="10" Y="223"/>
<TopLine Value="211"/>
<CursorPos X="10" Y="223"/>
<UsageCount Value="9"/>
</Unit19>
<Unit20>
<Filename Value="../../backup/rxdbgrid.pas"/>
<UnitName Value="rxdbgrid"/>
<CursorPos X="1" Y="1227"/>
<TopLine Value="1207"/>
<CursorPos X="1" Y="1227"/>
<UsageCount Value="9"/>
</Unit20>
<Unit21>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxaboutdialog.pas"/>
<UnitName Value="RxAboutDialog"/>
<CursorPos X="73" Y="30"/>
<TopLine Value="10"/>
<CursorPos X="73" Y="30"/>
<UsageCount Value="10"/>
</Unit21>
<Unit22>
<Filename Value="/usr/local/share/lazarus/components/rxnew/registerrx.pas"/>
<UnitName Value="registerrx"/>
<CursorPos X="18" Y="201"/>
<TopLine Value="174"/>
<CursorPos X="18" Y="201"/>
<UsageCount Value="10"/>
</Unit22>
<Unit23>
<Filename Value="/usr/local/share/lazarus/ideintf/idewindowintf.pas"/>
<UnitName Value="IDEWindowIntf"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="31"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="9"/>
</Unit23>
<Unit24>
<Filename Value="/usr/local/share/lazarus/lcl/extdlgs.pas"/>
<UnitName Value="ExtDlgs"/>
<CursorPos X="35" Y="122"/>
<TopLine Value="105"/>
<CursorPos X="35" Y="122"/>
<UsageCount Value="9"/>
</Unit24>
<Unit25>
<Filename Value="/usr/local/share/lazarus/lcl/dialogs.pp"/>
<UnitName Value="Dialogs"/>
<CursorPos X="21" Y="79"/>
<TopLine Value="62"/>
<CursorPos X="21" Y="79"/>
<UsageCount Value="9"/>
</Unit25>
<Unit26>
<Filename Value="/usr/local/share/lazarus/lcl/include/commondialog.inc"/>
<CursorPos X="17" Y="84"/>
<TopLine Value="80"/>
<CursorPos X="17" Y="84"/>
<UsageCount Value="9"/>
</Unit26>
<Unit27>
<Filename Value="/usr/local/share/lazarus/lcl/widgetset/wsdialogs.pp"/>
<UnitName Value="WSDialogs"/>
<CursorPos X="3" Y="136"/>
<TopLine Value="132"/>
<CursorPos X="3" Y="136"/>
<UsageCount Value="9"/>
</Unit27>
<Unit28>
@ -260,48 +261,52 @@
<ComponentName Value="rxAboutFormForm"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="rxAboutFormUnit"/>
<CursorPos X="26" Y="55"/>
<TopLine Value="41"/>
<CursorPos X="26" Y="55"/>
<UsageCount Value="10"/>
</Unit28>
<Unit29>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxversinfo.pas"/>
<UnitName Value="RxVersInfo"/>
<CursorPos X="49" Y="105"/>
<TopLine Value="72"/>
<CursorPos X="49" Y="105"/>
<UsageCount Value="9"/>
</Unit29>
<Unit30>
<Filename Value="/usr/local/share/lazarus/lcl/include/control.inc"/>
<CursorPos X="1" Y="3167"/>
<WindowIndex Value="0"/>
<TopLine Value="3150"/>
<UsageCount Value="9"/>
<CursorPos X="89" Y="3171"/>
<UsageCount Value="10"/>
</Unit30>
<Unit31>
<Filename Value="/usr/local/share/lazarus/lcl/buttonpanel.pas"/>
<UnitName Value="ButtonPanel"/>
<CursorPos X="6" Y="15"/>
<TopLine Value="11"/>
<CursorPos X="6" Y="15"/>
<UsageCount Value="10"/>
</Unit31>
<Unit32>
<Filename Value="/usr/local/share/lazarus/lcl/extctrls.pp"/>
<UnitName Value="ExtCtrls"/>
<CursorPos X="15" Y="607"/>
<TopLine Value="604"/>
<CursorPos X="15" Y="607"/>
<UsageCount Value="10"/>
</Unit32>
<Unit33>
<Filename Value="/usr/local/share/lazarus/lcl/include/customimage.inc"/>
<CursorPos X="3" Y="69"/>
<TopLine Value="67"/>
<CursorPos X="3" Y="69"/>
<UsageCount Value="10"/>
</Unit33>
<Unit34>
<Filename Value="../../../../../../install/fpcsrc/rtl/objpas/classes/classesh.inc"/>
<CursorPos X="1" Y="1641"/>
<TopLine Value="1632"/>
<UsageCount Value="9"/>
<EditorIndex Value="5"/>
<WindowIndex Value="0"/>
<TopLine Value="472"/>
<CursorPos X="1" Y="491"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit34>
<Unit35>
<Filename Value="../../../../../smsprog/sms_send_deamon/smsSendGui/smssendaboutunit.pas"/>
@ -309,22 +314,22 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="smsSendAboutUnit"/>
<CursorPos X="1" Y="57"/>
<TopLine Value="28"/>
<CursorPos X="1" Y="57"/>
<UsageCount Value="10"/>
</Unit35>
<Unit36>
<Filename Value="../../../../../smsprog/sms_shared/smsabstarctconstunit.pas"/>
<UnitName Value="smsAbstarctConstUnit"/>
<CursorPos X="42" Y="11"/>
<TopLine Value="1"/>
<CursorPos X="42" Y="11"/>
<UsageCount Value="10"/>
</Unit36>
<Unit37>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxconst.pas"/>
<UnitName Value="rxconst"/>
<CursorPos X="3" Y="51"/>
<TopLine Value="34"/>
<CursorPos X="3" Y="51"/>
<UsageCount Value="10"/>
</Unit37>
<Unit38>
@ -333,8 +338,8 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="smssendParamsUnit"/>
<CursorPos X="34" Y="60"/>
<TopLine Value="49"/>
<CursorPos X="34" Y="60"/>
<UsageCount Value="10"/>
</Unit38>
<Unit39>
@ -343,64 +348,76 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="smsSendDemoMainUnit"/>
<CursorPos X="105" Y="29"/>
<TopLine Value="41"/>
<CursorPos X="105" Y="29"/>
<UsageCount Value="10"/>
</Unit39>
<Unit40>
<Filename Value="../../../rxnet/demo/send_demo/send_demo.lpr"/>
<UnitName Value="send_demo"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<UsageCount Value="10"/>
</Unit40>
<Unit41>
<Filename Value="../../../../doceditor/lazdeopts.pp"/>
<UnitName Value="LazDEOpts"/>
<CursorPos X="1" Y="56"/>
<TopLine Value="43"/>
<CursorPos X="1" Y="56"/>
<UsageCount Value="10"/>
</Unit41>
<Unit42>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxfileutils.pas"/>
<UnitName Value="rxFileUtils"/>
<CursorPos X="33" Y="42"/>
<TopLine Value="18"/>
<CursorPos X="33" Y="42"/>
<UsageCount Value="10"/>
</Unit42>
<Unit43>
<Filename Value="/usr/local/share/lazarus/lcl/dbgrids.pas"/>
<UnitName Value="DBGrids"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="121"/>
<EditorIndex Value="2"/>
<WindowIndex Value="0"/>
<TopLine Value="1755"/>
<CursorPos X="36" Y="1773"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit43>
<Unit44>
<Filename Value="/usr/local/share/lazarus/components/rxnew/registerrxdb.pas"/>
<UnitName Value="RegisterRxDB"/>
<CursorPos X="20" Y="17"/>
<TopLine Value="2"/>
<CursorPos X="20" Y="17"/>
<UsageCount Value="10"/>
</Unit44>
<Unit45>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<UnitName Value="rxdbgrid"/>
<CursorPos X="61" Y="496"/>
<TopLine Value="481"/>
<UsageCount Value="10"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<WindowIndex Value="0"/>
<TopLine Value="78"/>
<CursorPos X="21" Y="113"/>
<UsageCount Value="12"/>
<Bookmarks Count="3">
<Item0 X="3" Y="3550" ID="2"/>
<Item1 X="3" Y="2199" ID="3"/>
<Item2 X="3" Y="2774" ID="1"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit45>
<Unit46>
<Filename Value="/usr/local/share/lazarus/ideintf/dbpropedits.pas"/>
<UnitName Value="DBPropEdits"/>
<CursorPos X="6" Y="19"/>
<TopLine Value="13"/>
<CursorPos X="6" Y="19"/>
<UsageCount Value="10"/>
</Unit46>
<Unit47>
<Filename Value="/usr/local/share/lazarus/ideintf/propedits.pp"/>
<UnitName Value="PropEdits"/>
<CursorPos X="6" Y="26"/>
<TopLine Value="1"/>
<CursorPos X="6" Y="26"/>
<UsageCount Value="10"/>
</Unit47>
<Unit48>
@ -409,8 +426,8 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="rxdbgrid_findunit"/>
<CursorPos X="1" Y="94"/>
<TopLine Value="78"/>
<CursorPos X="1" Y="94"/>
<UsageCount Value="10"/>
</Unit48>
<Unit49>
@ -419,53 +436,223 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="rxdbgrid_columsunit"/>
<CursorPos X="25" Y="1"/>
<TopLine Value="1"/>
<CursorPos X="25" Y="1"/>
<UsageCount Value="10"/>
</Unit49>
<Unit50>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxtoolbar.pas"/>
<UnitName Value="rxtoolbar"/>
<CursorPos X="52" Y="26"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<EditorIndex Value="1"/>
<CursorPos X="52" Y="26"/>
<UsageCount Value="12"/>
</Unit50>
<Unit51>
<Filename Value="/usr/local/share/lazarus/components/synedit/synedit.pp"/>
<UnitName Value="SynEdit"/>
<EditorIndex Value="3"/>
<WindowIndex Value="0"/>
<TopLine Value="5699"/>
<CursorPos X="1" Y="5702"/>
<SyntaxHighlighter Value="FreePascal"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit50>
<DefaultSyntaxHighlighter Value="Text"/>
</Unit51>
<Unit52>
<Filename Value="/usr/local/share/lazarus/components/synedit/syneditkeycmds.pp"/>
<UnitName Value="SynEditKeyCmds"/>
<EditorIndex Value="4"/>
<WindowIndex Value="0"/>
<TopLine Value="750"/>
<CursorPos X="3" Y="752"/>
<SyntaxHighlighter Value="FreePascal"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Text"/>
</Unit52>
<Unit53>
<Filename Value="../../../../../../install/fpcsrc/rtl/objpas/classes/classes.inc"/>
<WindowIndex Value="0"/>
<TopLine Value="429"/>
<CursorPos X="33" Y="447"/>
<SyntaxHighlighter Value="FreePascal"/>
<UsageCount Value="10"/>
<DefaultSyntaxHighlighter Value="Text"/>
</Unit53>
<Unit54>
<Filename Value="/usr/local/share/lazarus/lcl/actnlist.pas"/>
<UnitName Value="ActnList"/>
<WindowIndex Value="0"/>
<TopLine Value="206"/>
<CursorPos X="33" Y="224"/>
<SyntaxHighlighter Value="FreePascal"/>
<UsageCount Value="10"/>
<DefaultSyntaxHighlighter Value="Text"/>
</Unit54>
<Unit55>
<Filename Value="/usr/local/share/lazarus/lcl/lclproc.pas"/>
<UnitName Value="LCLProc"/>
<WindowIndex Value="0"/>
<TopLine Value="1154"/>
<CursorPos X="10" Y="1165"/>
<SyntaxHighlighter Value="FreePascal"/>
<UsageCount Value="10"/>
<DefaultSyntaxHighlighter Value="Text"/>
</Unit55>
<Unit56>
<Filename Value="rxdbgridmainunit.lfm"/>
<WindowIndex Value="0"/>
<TopLine Value="100"/>
<CursorPos X="5" Y="103"/>
<SyntaxHighlighter Value="LFM"/>
<UsageCount Value="10"/>
<DefaultSyntaxHighlighter Value="Text"/>
</Unit56>
<Unit57>
<Filename Value="/usr/local/share/lazarus/components/rxnew/Demos/RxDBGrid/RxDBGridDemo.lpr"/>
<UnitName Value="RxDBGridDemo"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="15"/>
<SyntaxHighlighter Value="FreePascal"/>
<UsageCount Value="10"/>
<DefaultSyntaxHighlighter Value="Text"/>
</Unit57>
<Unit58>
<Filename Value="../../../../../../install/fpcsrc/rtl/objpas/classes/collect.inc"/>
<EditorIndex Value="6"/>
<WindowIndex Value="0"/>
<TopLine Value="286"/>
<CursorPos X="1" Y="288"/>
<SyntaxHighlighter Value="FreePascal"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Text"/>
</Unit58>
</Units>
<JumpHistory Count="8" HistoryIndex="7">
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="87" Column="23" TopLine="54"/>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="373" Column="15" TopLine="355"/>
</Position1>
<Position2>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="96" Column="92" TopLine="71"/>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="477" Column="74" TopLine="464"/>
</Position2>
<Position3>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="97" Column="92" TopLine="71"/>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1045" Column="19" TopLine="1038"/>
</Position3>
<Position4>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="10" Column="8" TopLine="1"/>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="477" Column="76" TopLine="463"/>
</Position4>
<Position5>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="9" Column="12" TopLine="1"/>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="2839" Column="19" TopLine="2814"/>
</Position5>
<Position6>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="10" Column="9" TopLine="1"/>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="441" Column="32" TopLine="418"/>
</Position6>
<Position7>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="9" Column="28" TopLine="1"/>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="2769" Column="21" TopLine="2769"/>
</Position7>
<Position8>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="9" Column="28" TopLine="1"/>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position8>
<Position9>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="441" Column="22" TopLine="423"/>
</Position9>
<Position10>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="2769" Column="28" TopLine="2751"/>
</Position10>
<Position11>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="2772" Column="13" TopLine="2754"/>
</Position11>
<Position12>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="229" Column="15" TopLine="211"/>
</Position12>
<Position13>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="3543" Column="4" TopLine="3538"/>
</Position13>
<Position14>
<Filename Value="../../../../../../install/fpcsrc/rtl/objpas/classes/collect.inc"/>
<Caret Line="50" Column="20" TopLine="42"/>
</Position14>
<Position15>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="124" Column="55" TopLine="103"/>
</Position15>
<Position16>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="2774" Column="3" TopLine="2756"/>
</Position16>
<Position17>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="3571" Column="37" TopLine="3553"/>
</Position17>
<Position18>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="3552" Column="85" TopLine="3549"/>
</Position18>
<Position19>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="132" Column="74" TopLine="100"/>
</Position19>
<Position20>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="134" Column="74" TopLine="102"/>
</Position20>
<Position21>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="570" Column="16" TopLine="538"/>
</Position21>
<Position22>
<Filename Value="/usr/local/share/lazarus/lcl/dbgrids.pas"/>
<Caret Line="457" Column="84" TopLine="439"/>
</Position22>
<Position23>
<Filename Value="/usr/local/share/lazarus/lcl/dbgrids.pas"/>
<Caret Line="561" Column="26" TopLine="543"/>
</Position23>
<Position24>
<Filename Value="/usr/local/share/lazarus/lcl/dbgrids.pas"/>
<Caret Line="1773" Column="27" TopLine="1757"/>
</Position24>
<Position25>
<Filename Value="/usr/local/share/lazarus/lcl/dbgrids.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position25>
<Position26>
<Filename Value="/usr/local/share/lazarus/lcl/dbgrids.pas"/>
<Caret Line="413" Column="26" TopLine="395"/>
</Position26>
<Position27>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="152" Column="1" TopLine="150"/>
</Position27>
<Position28>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="151" Column="1" TopLine="149"/>
</Position28>
<Position29>
<Filename Value="rxdbgridmainunit.pas"/>
<Caret Line="157" Column="15" TopLine="148"/>
</Position29>
<Position30>
<Filename Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Caret Line="480" Column="36" TopLine="474"/>
</Position30>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
@ -489,13 +676,23 @@
</Other>
</CompilerOptions>
<Debugging>
<Watches Count="2">
<BreakPoints Count="1">
<Item1>
<Source Value="/usr/local/share/lazarus/components/rxnew/rxdbgrid.pas"/>
<Line Value="1043"/>
</Item1>
</BreakPoints>
<Watches Count="3">
<Item1>
<Expression Value="W"/>
</Item1>
<Item2>
<Expression Value="aRect"/>
</Item2>
<Item3>
<Expression Value="K.Enabled)"/>
<Enabled Value="False"/>
</Item3>
</Watches>
<Exceptions Count="1">
<Item1>

View File

@ -1,20 +1,20 @@
object RxDBGridMainForm: TRxDBGridMainForm
Left = 286
Height = 609
Top = 158
Width = 969
Left = 295
Height = 786
Top = 147
Width = 1012
ActiveControl = Panel1
Caption = 'RxDBGrid Demo'
ClientHeight = 586
ClientWidth = 969
ClientHeight = 761
ClientWidth = 1012
Menu = MainMenu1
OnCreate = FormCreate
LCLVersion = '0.9.29'
object RxDBGrid1: TRxDBGrid
Left = 0
Height = 519
Top = 67
Width = 969
Height = 692
Top = 69
Width = 1012
TitleButtons = True
AutoSort = True
Columns = <
@ -118,9 +118,40 @@ object RxDBGridMainForm: TRxDBGridMainForm
Filter.EmptyFont.Style = [fsItalic]
Filter.ItemIndex = -1
end>
KeyStrokes = <
item
Command = rxgcShowFindDlg
ShortCut = 57414
Enabled = True
end
item
Command = rxgcShowColumnsDlg
ShortCut = 16471
Enabled = True
end
item
Command = rxgcShowFilterDlg
ShortCut = 16468
Enabled = True
end
item
Command = rxgcShowSortDlg
ShortCut = 16467
Enabled = True
end
item
Command = rxgcShowQuickFilter
ShortCut = 16465
Enabled = True
end
item
Command = rxgcHideQuickFilter
ShortCut = 16456
Enabled = True
end>
PropertyStorage = XMLPropStorage1
Version = 1
OptionsRx = [rdgAllowColumnsForm, rdgAllowDialogFind, rdgFooterRows, rdgAllowQuickSearch, rdgAllowToolMenu]
OptionsRx = [rdgAllowColumnsForm, rdgAllowDialogFind, rdgDblClickOptimizeColWidth, rdgFooterRows, rdgAllowQuickSearch, rdgAllowToolMenu]
FooterColor = clYellow
FooterRowCount = 1
OnFiltred = RxDBGrid1Filtred
@ -137,13 +168,13 @@ object RxDBGridMainForm: TRxDBGridMainForm
end
object Panel1: TPanel
Left = 0
Height = 67
Height = 69
Top = 0
Width = 969
Width = 1012
Align = alTop
AutoSize = True
ClientHeight = 67
ClientWidth = 969
ClientHeight = 69
ClientWidth = 1012
TabOrder = 1
object Label1: TLabel
AnchorSideLeft.Control = Button2
@ -188,9 +219,9 @@ object RxDBGridMainForm: TRxDBGridMainForm
AnchorSideTop.Control = CheckBox2
AnchorSideTop.Side = asrBottom
Left = 500
Height = 19
Top = 31
Width = 82
Height = 22
Top = 34
Width = 86
BorderSpacing.Left = 6
Caption = 'Use filter'
OnChange = CheckBox1Change
@ -221,9 +252,9 @@ object RxDBGridMainForm: TRxDBGridMainForm
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 500
Height = 19
Height = 22
Top = 6
Width = 134
Width = 138
BorderSpacing.Around = 6
Caption = 'Auto fill columns'
OnChange = CheckBox2Change
@ -233,10 +264,10 @@ object RxDBGridMainForm: TRxDBGridMainForm
AnchorSideLeft.Control = CheckBox2
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel1
Left = 640
Height = 19
Left = 644
Height = 22
Top = 6
Width = 121
Width = 125
BorderSpacing.Around = 6
Caption = 'Show indicator'
Checked = True
@ -249,10 +280,10 @@ object RxDBGridMainForm: TRxDBGridMainForm
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CheckBox3
AnchorSideTop.Side = asrBottom
Left = 640
Height = 19
Top = 31
Width = 119
Left = 644
Height = 22
Top = 34
Width = 123
BorderSpacing.Around = 6
Caption = 'Show headers'
Checked = True
@ -603,6 +634,7 @@ object RxDBGridMainForm: TRxDBGridMainForm
Caption = 'System'
object MenuItem11: TMenuItem
Action = sysExit
OnClick = sysExitExecute
end
end
object MenuItem9: TMenuItem

View File

@ -131,6 +131,8 @@ begin
// DoFillFilters;
RxMemoryData1.First;
RxDBGrid1.CalcStatTotals; //fix error in GotoBookmark
end;
procedure TRxDBGridMainForm.hlpAboutExecute(Sender: TObject);
@ -143,6 +145,7 @@ begin
RxMemoryData1.First;
end;
procedure TRxDBGridMainForm.RxMemoryData1FilterRecordEx(DataSet: TDataSet;
var Accept: Boolean);
var

View File

@ -82,68 +82,6 @@
+ add new component - TAutoPanel ( Dmitry V. Bolshakov) -
doc ifn folder auto_panel_doc
+ in property OptionsRX add new flag - rdgMrOkOnDblClik
25.06.2007 - version 1.1.3.86
- fix error in TRxMemoryData.SortOnFields
+ add sorting in RxDBGrid for TRxMemoryData
- use module rxsortmemds
+ In RxDBGrid add procedure UpdateTitleHight - direc recalc title hight
- fix error RxDBGrid on press on last collumn title
+ in RxDBGrid � ��������� ������� ᯥ樠�쭠� ��ࠡ�⪠ ᨬ���� | - ���
���⠥��� ����᫮���� ࠧ����⥫� ��ப
+ � RxDBGrid.OptionsRx �������� 䫠� rdgMultiTitleLines -
��� ����稨 � ��������� ᨬ���� | ����� ��ப��� �������� ࠧ����⥫쭠�
�����
+ � rx.inc ���� ����� ��४⨢㪮�����樨
NEW_STYLE_TITLE_ALIGNMENT_RXDBGRID
�᫨ ��� ��।����, �� ��� ᮧ����� ����� ������� � RxDBGrid ��������� 業���������,
�᫨ ��� ��४⨢� �� ��।����� - �� ��������� ��������� �⠭���⭮� - ��ࠢ��������
�� ������ ����
+ in TRxDBLookupCombo �᫨ � ᢮��⢥ PopUpFormOptions ������ ������� �� ��� ����ᮢ�� ������
� ��ப� �ᯮ�������� ��ਭ�, 㪠������ � ��������
+ in TRxDBLookupCombo after close popup window saved width of collumn
31.05.2007 - version 1.1.2.77
- fix compile error in rxtoolbar.pas - TToolPanel not work this theme manager :-(
- fix compile error in rxlogin.pas - error in SetCursor
15.05.2007 - version 1.1.1.75
+ in RxDBGrid add procedure OptimizeColumnsWidth(AColList:String) - calc width of
column
+ in RxDBGrid add procedure OptimizeColumnsWidthAll - calc width for all columns
+ in TRxColumn add procedure OptimizeWidth - calc width of column
+ option rdgDblClickOptimizeColWidth in RxDBGrid.OptionsRx now work
- fix calc height title column for for RxDBGrid
- fix open demo for RxDBGrid
+ in demo for RxDBGrid add code for OptimizeWidth procedure
28.03.2007 - version 1.1.0.68
- In RxDBGrid fix draw summary footer line on resize collumns
+ In RxDBGrid in property OptionsRx add new value rdgXORColSizing
- change draw code for footer line (code from Yogrik)
+ minor fix on reposition button in ToolBar
+ in TRxDBLookupCombo fix draw dropdown box
+ in TRxColumnTitle add property Hint and ShowHint
+ In TRxDBGrid add filtrenig (code from Yogrik)
01.11.2006 - version 1.0.19.61
+ In dropdown box from TRxDBLookupCombo write fast find in collumn on press keys
+ In RxDBGrid add summary footer line. Warning: not work aggregate function
(SUM, MAX, MIN, AVG) - error in TDataSet
+ In TRxMemoryData create method AppendRecord - AppendRecord from TDataSet not work :-(
+ New demo app - RxDBGrid
- In RxDBGrid fix call OnDrawColumnCell
08.09.2006 - version 1.0.18.56
+ In component TToolPanel add new property ButtonAllign = (tbaNone, tbaLeft, tbaRignt)
default align for button
+ Object TToolbarItem (button on ToolBar) process type tbrSeparator -
the button appears as an empty space on the toolbar (used to separate other controls).
+ On close drop down in TRxDBLookupCombo repaint parent of component
19.08.2006 - version 1.0.17.53
+ change default style of window frame in TRxDBLookupCombo to bsNone
+ single mouse click in TRxDBLookupCombo closes it's
- fix work ESK key in TRxDBLookupCombo
+ In RxDBLookupCombo not fire event OnChange
15.05.2006 - version 1.0.16.49
+ rewrite dropdown box for component TRxDBLookupCombo
+ for TRxDBLookupCombo add new property - PopUpFormOptions - all parametrs for
dropdown list
Lagunov Aleksey (alexs)

View File

@ -61,7 +61,9 @@
+ Новая компонента TRxAboutDialog - окно для отображения информации о программе (пример смотреть в демке по RxDBGrid-у)
+ Добавлена поддержка компиляции под WinCE
- Исправлена ошибка автоподбора ширины колонки при двойном щелчке по заголвку колонки
+ При подсчёте итоговой строки нк вызываются лишние просчёты по данным (если нет агрегатных функций)
+ При подсчёте итоговой строки не вызываются лишние просчёты по данным (если нет агрегатных функций)
+ Для RXDbGrid-а реализована система назначения функциональных клавиш на вызов функций (сортировка, фильтрация и т.д.)
добавлено новое свойство KeyStrokes
22.05.2008 - версия 2.0.0.136 (svn revision 100)
+ У объекта TRxCustomDBLookupCombo введён контроль на CircularDataLink
+ У объекта TRxCustomDBLookupCombo ускорена отрисовка данных

View File

@ -62,4 +62,5 @@
После успешного завершения поиска вызывается событие AfterQuickUTF8Search, куда передаётся в
качестве AValue предыдущая подстрока поиска. Последнее событие удобно использовать для
отображения где ни будь на общей форме текущий подстроки поиска.
7. Вопросы задавать мылом или на форуме FreePascal.ru (предпочтительней)

View File

@ -160,6 +160,7 @@
<link id="TRxDBGrid">RxDBGrid</link>-а.</p>
</descr>
</element>
@ -560,6 +561,7 @@
<link id="TRxDBGrid">RxDBGrid</link>-а.</p>
</descr>
<seealso>
@ -625,6 +627,32 @@
<short>Тип описывает событие, возникающее в момент показа выпадающего списка лукапного редактора значения ячейки</short>
<descr>Тип описывает событие, возникающее в момент показа выпадающего списка лукапного редактора значения ячейки</descr>
</element>
<element name="TRxDBGrid.KeyStrokes">
<short>Определяет сочетания для вызова фукнций RxDBGrid</short>
<descr>Определяет сочетания для вызова фукнций RxDBGrid</descr>
</element>
<element name="TRxDBGridKeyStrokes">
<short>Список назначенных клавиш на команды в TRxDBGrid</short>
</element>
<element name="TRxDBGridKeyStrokes.Create"/>
<element name="TRxDBGridKeyStrokes.Add"/>
<element name="TRxDBGridKeyStrokes.AddE"/>
<element name="TRxDBGridKeyStrokes.ResetDefaults"/>
<element name="TRxDBGridKeyStrokes.FindRxCommand"/>
<element name="TRxDBGridKeyStrokes.FindRxKeyStrokes"/>
<element name="TRxDBGridKeyStrokes.Items">
<short>Список назначенных команд на сочетания клавишь</short>
</element>
<element name="TRxDBGridKeyStroke"/>
<element name="TRxDBGridKeyStroke.Command">
<short>Определяем команду</short>
</element>
<element name="TRxDBGridKeyStroke.ShortCut">
<short>Определят сочетание клавишь</short>
</element>
<element name="TRxDBGridKeyStroke.Enabled">
<short>Признак запрета данного сочетания клавишь</short>
</element>
</module>
<module name="rxctrls">
<element name="TRxLabel">
@ -1116,6 +1144,7 @@ TRxDBCalcEdit является наследником TDBCalcEdit и имеет
<b>Count</b>
@ -2392,6 +2421,7 @@ Description
<b>const</b> SearchDomain, FileName:
@ -2411,6 +2441,7 @@ Description
<b>String</b>;
@ -2430,6 +2461,7 @@ Description
<b>out</b> UserName, DomainName:
@ -2449,6 +2481,7 @@ Description
<b>String</b>);
</p>
<p>Процедура возвращает имя и домен пользователя операционной системы владельца указанного файла. </p>
@ -2485,6 +2518,7 @@ Description
<b>const</b> DirName:
@ -2498,6 +2532,7 @@ Description
<b>string</b>):
@ -2511,6 +2546,7 @@ Description
<b>string</b>;</p>
<p>Функция проверяет все разделители каталогов в указанном имени файла/каталога и, если нужно, меняет их на значение константы<b>DirectorySeparator</b>.</p>
</descr>
@ -2538,6 +2574,7 @@ Description
<b>string</b>;</p>
<p>Функция <b>GetUserName</b> возвращает имя оператора, залогиненго в системе</p>
</descr>

View File

@ -45,11 +45,13 @@ type
TRxAboutDialog = class(TComponent)
private
FAdditionalInfo: TStrings;
FApplicationTitle: string;
FCaption: string;
FLicenseFileName: string;
FOptions: TRxAboutDialogOptions;
FPicture: TPicture;
procedure SetAdditionalInfo(const AValue: TStrings);
procedure SetPicture(const AValue: TPicture);
procedure SetRxAboutDialogOptions(const AValue: TRxAboutDialogOptions);
protected
@ -64,6 +66,7 @@ type
property LicenseFileName:string read FLicenseFileName write FLicenseFileName;
property Caption:string read FCaption write FCaption;
property Picture: TPicture read FPicture write SetPicture;
property AdditionalInfo:TStrings read FAdditionalInfo write SetAdditionalInfo;
end;
@ -85,15 +88,22 @@ begin
FPicture.Assign(AValue);
end;
procedure TRxAboutDialog.SetAdditionalInfo(const AValue: TStrings);
begin
FAdditionalInfo.Assign(AValue);
end;
constructor TRxAboutDialog.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FPicture := TPicture.Create;
FCaption:=sAbout;
FAdditionalInfo:= TStringList.Create;
end;
destructor TRxAboutDialog.Destroy;
begin
FAdditionalInfo.Free;
FPicture.Graphic := nil;
FPicture.Free;
inherited Destroy;
@ -126,6 +136,8 @@ begin
begin
end;
rxAboutFormForm.Memo2.Lines.Assign(FAdditionalInfo);
try
rxAboutFormForm.ShowModal;
finally

View File

@ -3,7 +3,6 @@ object rxAboutFormForm: TrxAboutFormForm
Height = 386
Top = 349
Width = 498
ActiveControl = PageControl1
Caption = 'rxAboutFormForm'
ClientHeight = 386
ClientWidth = 498
@ -12,17 +11,17 @@ object rxAboutFormForm: TrxAboutFormForm
LCLVersion = '0.9.29'
object PageControl1: TPageControl
Left = 0
Height = 332
Height = 340
Top = 0
Width = 498
ActivePage = TabSheet2
ActivePage = TabSheet1
Align = alClient
TabIndex = 1
TabIndex = 0
TabOrder = 0
object TabSheet1: TTabSheet
Caption = 'General'
ClientHeight = 301
ClientWidth = 494
ClientHeight = 314
ClientWidth = 490
object lblAppTitle: TLabel
AnchorSideLeft.Control = Image1
AnchorSideLeft.Side = asrBottom
@ -30,9 +29,9 @@ object rxAboutFormForm: TrxAboutFormForm
AnchorSideRight.Control = TabSheet1
AnchorSideRight.Side = asrBottom
Left = 140
Height = 18
Height = 14
Top = 6
Width = 348
Width = 344
Alignment = taCenter
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
@ -57,28 +56,48 @@ object rxAboutFormForm: TrxAboutFormForm
AnchorSideRight.Control = lblAppTitle
AnchorSideRight.Side = asrBottom
Left = 140
Height = 18
Top = 31
Width = 348
Height = 14
Top = 27
Width = 344
Alignment = taCenter
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 7
Caption = 'Version : '
ParentColor = False
end
object Memo2: TMemo
AnchorSideLeft.Control = Image1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lblVersion
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = TabSheet1
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = TabSheet1
AnchorSideBottom.Side = asrBottom
Left = 140
Height = 273
Top = 41
Width = 350
Anchors = [akTop, akLeft, akRight, akBottom]
BorderStyle = bsNone
ParentColor = True
ReadOnly = True
TabOrder = 0
WordWrap = False
end
end
object TabSheet2: TTabSheet
Caption = 'Detail'
ClientHeight = 301
ClientWidth = 494
ClientHeight = 314
ClientWidth = 490
object lblBuildDate: TLabel
AnchorSideLeft.Control = TabSheet2
AnchorSideRight.Control = TabSheet2
AnchorSideRight.Side = asrBottom
Left = 0
Height = 18
Height = 14
Top = 6
Width = 494
Width = 490
Alignment = taCenter
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
@ -92,9 +111,9 @@ object rxAboutFormForm: TrxAboutFormForm
AnchorSideRight.Control = TabSheet2
AnchorSideRight.Side = asrBottom
Left = 0
Height = 18
Top = 30
Width = 494
Height = 14
Top = 26
Width = 490
Alignment = taCenter
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
@ -108,9 +127,9 @@ object rxAboutFormForm: TrxAboutFormForm
AnchorSideRight.Control = TabSheet2
AnchorSideRight.Side = asrBottom
Left = 0
Height = 18
Top = 54
Width = 494
Height = 14
Top = 46
Width = 490
Alignment = taCenter
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
@ -124,9 +143,9 @@ object rxAboutFormForm: TrxAboutFormForm
AnchorSideRight.Control = TabSheet2
AnchorSideRight.Side = asrBottom
Left = 0
Height = 18
Top = 78
Width = 494
Height = 14
Top = 66
Width = 490
Alignment = taCenter
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
@ -140,9 +159,9 @@ object rxAboutFormForm: TrxAboutFormForm
AnchorSideRight.Control = TabSheet2
AnchorSideRight.Side = asrBottom
Left = 0
Height = 18
Top = 102
Width = 494
Height = 14
Top = 86
Width = 490
Alignment = taCenter
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
@ -156,9 +175,9 @@ object rxAboutFormForm: TrxAboutFormForm
AnchorSideRight.Control = TabSheet2
AnchorSideRight.Side = asrBottom
Left = 0
Height = 18
Top = 126
Width = 494
Height = 14
Top = 106
Width = 490
Alignment = taCenter
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
@ -185,8 +204,8 @@ object rxAboutFormForm: TrxAboutFormForm
end
object ButtonPanel1: TButtonPanel
Left = 6
Height = 42
Top = 338
Height = 34
Top = 346
Width = 486
TabOrder = 1
ShowButtons = [pbClose, pbHelp]

View File

@ -55,6 +55,7 @@ type
lblVersion: TLabel;
lblWidgetName: TLabel;
Memo1: TMemo;
Memo2: TMemo;
PageControl1: TPageControl;
RxVersionInfo1: TRxVersionInfo;
TabSheet1: TTabSheet;
@ -92,8 +93,10 @@ begin
TabSheet1.Caption:=sGeneral;
TabSheet2.Caption:=sDetails;
TabSheet3.Caption:=sLicense;
Memo2.Color:=TabSheet1.Color;
end;
procedure TrxAboutFormForm.LoadLicense(AFileName: string);
begin
if FileExistsUTF8(AFileName) then

View File

@ -87,11 +87,57 @@ type
TDisplayLookup = TNotifyEvent;
// TDataSetClass = class of TDataSet;
TRxDBGridCommand = (rxgcNone, rxgcShowFindDlg, rxgcShowColumnsDlg,
rxgcShowFilterDlg, rxgcShowSortDlg, rxgcShowQuickFilter,
rxgcHideQuickFilter
);
{ TRxDBGridKeyStroke }
TRxDBGridKeyStroke = class(TCollectionItem)
private
FCommand: TRxDBGridCommand;
FEnabled: boolean;
FShortCut: TShortCut;
FKey: word; // Virtual keycode, i.e. VK_xxx
FShift: TShiftState;
procedure SetCommand(const AValue: TRxDBGridCommand);
procedure SetShortCut(const AValue: TShortCut);
protected
function GetDisplayName: string; override;
public
//
published
property Command: TRxDBGridCommand read FCommand write SetCommand;
property ShortCut: TShortCut read FShortCut write SetShortCut;
property Enabled:boolean read FEnabled write FEnabled;
end;
{ TRxDBGridKeyStrokes }
TRxDBGridKeyStrokes = class(TCollection)
private
FOwner: TPersistent;
function GetItem(Index: Integer): TRxDBGridKeyStroke;
procedure SetItem(Index: Integer; const AValue: TRxDBGridKeyStroke);
protected
procedure Update(Item: TCollectionItem); override;
public
constructor Create(AOwner: TPersistent);
function Add: TRxDBGridKeyStroke;
function AddE(ACommand: TRxDBGridCommand; AShortCut: TShortCut): TRxDBGridKeyStroke;
procedure ResetDefaults;
function FindRxCommand(AKey:word; AShift: TShiftState):TRxDBGridCommand;
function FindRxKeyStrokes(ACommand:TRxDBGridCommand):TRxDBGridKeyStroke;
public
property Items[Index: Integer]: TRxDBGridKeyStroke read GetItem
write SetItem; default;
end;
TRxColumn = class;
{ TRxDBGridSortEngine }
TRxSortEngineOption =
(seoCaseInsensitiveSort);
TRxSortEngineOption = (seoCaseInsensitiveSort);
TRxSortEngineOptions = set of TRxSortEngineOption;
TRxDBGridSortEngine = class
@ -273,6 +319,7 @@ type
FAllowedOperations: TRxDBGridAllowedOperations;
FFooterColor: TColor;
FFooterRowCount: integer;
FKeyStrokes: TRxDBGridKeyStrokes;
FOnGetCellProps: TGetCellPropsEvent;
FOptionsRx: TOptionsRx;
// FTitleLines: Integer;
@ -328,6 +375,7 @@ type
procedure SetColumns(const AValue: TRxDbGridColumns);
procedure SetFooterColor(const AValue: TColor);
procedure SetFooterRowCount(const AValue: integer);
procedure SetKeyStrokes(const AValue: TRxDBGridKeyStrokes);
procedure SetOptionsRx(const AValue: TOptionsRx);
procedure SetPropertyStorage(const AValue: TCustomPropertyStorage);
procedure SetTitleButtons(const AValue: boolean);
@ -342,6 +390,7 @@ type
procedure OutCaptionSortMarker(const aRect: TRect; ASortMarker: TSortMarker);
procedure OutCaptionMLCellText(aCol,aRow: Integer; aRect: TRect; aState: TGridDrawState; MLI:TMLCaptionItem);
procedure UpdateJMenuStates;
procedure UpdateJMenuKeys;
function SortEngineOptions:TRxSortEngineOptions;
@ -391,6 +440,7 @@ type
Procedure OnFilterClose(Sender: TObject);
Procedure OnSortBy(Sender: TObject);
Procedure OnChooseVisibleFields(Sender: TObject);
procedure Loaded; override;
public
procedure FilterRec(DataSet : TDataSet;var Accept: Boolean);
@ -427,6 +477,7 @@ type
property OnGetCellProps: TGetCellPropsEvent read FOnGetCellProps
write FOnGetCellProps;
property Columns: TRxDbGridColumns read GetColumns write SetColumns stored IsColumnsStored;
property KeyStrokes:TRxDBGridKeyStrokes read FKeyStrokes write SetKeyStrokes;
//storage
property PropertyStorage:TCustomPropertyStorage read GetPropertyStorage write SetPropertyStorage;
@ -490,6 +541,7 @@ type
property TitleStyle;
property UseXORFeatures;
property Visible;
property OnCellClick;
property OnColEnter;
property OnColExit;
@ -529,7 +581,19 @@ implementation
uses Math, rxdconst, rxstrutils, rxdbgrid_findunit, rxdbgrid_columsunit,
rxlookup, tooledit, LCLProc, rxfilterby, rxsortby;
var
const
EditorCommandStrs: array[0..6] of TIdentMapEntry =
(
(Value: ord(rxgcNone); Name: 'rxcgNone'),
(Value: ord(rxgcShowFindDlg); Name: 'rxgcShowFindDlg'),
(Value: ord(rxgcShowColumnsDlg); Name: 'rxgcShowColumnsDlg'),
(Value: ord(rxgcShowFilterDlg); Name: 'rxgcShowFilterDlg'),
(Value: ord(rxgcShowSortDlg); Name: 'rxgcShowSortDlg'),
(Value: ord(rxgcShowQuickFilter); Name: 'rxgcShowQuickFilter'),
(Value: ord(rxgcHideQuickFilter); Name: 'rxgcHideQuickFilter')
);
var
RxDBGridSortEngineList:TStringList;
procedure RegisterRxDBGridSortEngine(RxDBGridSortEngineClass:TRxDBGridSortEngineClass; DataSetClass:TDataSetClass);
@ -974,6 +1038,16 @@ begin
// Invalidate;
end;
procedure TRxDBGrid.SetKeyStrokes(const AValue: TRxDBGridKeyStrokes);
begin
if Assigned(AValue) then
FKeyStrokes.Assign(AValue)
else
FKeyStrokes.Clear;
UpdateJMenuKeys;
end;
procedure TRxDBGrid.SetOptionsRx(const AValue: TOptionsRx);
var
OldOpt:TOptionsRx;
@ -1282,6 +1356,28 @@ begin
F_PopupMenu.Items[6].Enabled:=rdgAllowColumnsForm in FOptionsRx;
end;
procedure TRxDBGrid.UpdateJMenuKeys;
function DoShortCut(Cmd:TRxDBGridCommand):TShortCut;
var
K:TRxDBGridKeyStroke;
begin
K:=FKeyStrokes.FindRxKeyStrokes(Cmd);
if Assigned(K) and K.Enabled then
Result:=K.ShortCut
else
Result:=0;
end;
begin
F_PopupMenu.Items[0].ShortCut:=DoShortCut(rxgcShowFindDlg);
F_PopupMenu.Items[1].ShortCut:=DoShortCut(rxgcShowFilterDlg);
F_PopupMenu.Items[2].ShortCut:=DoShortCut(rxgcShowQuickFilter);
F_PopupMenu.Items[3].ShortCut:=DoShortCut(rxgcHideQuickFilter);
F_PopupMenu.Items[5].ShortCut:=DoShortCut(rxgcShowSortDlg);
F_PopupMenu.Items[6].ShortCut:=DoShortCut(rxgcShowColumnsDlg);
end;
function TRxDBGrid.SortEngineOptions: TRxSortEngineOptions;
begin
Result:=[];
@ -2078,58 +2174,34 @@ end;
procedure TRxDBGrid.KeyDown(var Key: Word; Shift: TShiftState);
var
FTmpReadOnly:boolean;
procedure DoShowFindDlg;
begin
if not (rdgAllowDialogFind in OptionsRx) then exit;
if Length(QuickUTF8Search) > 0 then QuickUTF8Search := '';
ShowFindDialog;
end;
procedure DoShowColumnsDlg;
begin
if not (rdgAllowColumnsForm in OptionsRx) then exit;
if Length(QuickUTF8Search) > 0 then QuickUTF8Search := '';
ShowColumnsDialog;
end;
procedure DoShowQuickFilter;
begin
if not (rdgAllowQuickFilter in FOptionsRx) then exit;
OnFilter(Self);
end;
begin
//DebugLn('RxDBGrid.KeyDown ',Name,' INIT Key= ',IntToStr(Key));
if (Key in CCancelQuickSearchKeys) then
if Length(QuickUTF8Search) > 0 then QuickUTF8Search := '';
case Key of
ord('F'):begin
if (ssCtrl in Shift) and (rdgAllowDialogFind in OptionsRx) then
begin
if Length(QuickUTF8Search) > 0 then QuickUTF8Search := '';
ShowFindDialog;
exit;
end;
end;
ord('W'):begin
if (ssCtrl in Shift) and (rdgAllowColumnsForm in OptionsRx) then
begin
if Length(QuickUTF8Search) > 0 then QuickUTF8Search := '';
ShowColumnsDialog;
exit;
end;
end;
VK_DELETE:if not (aoDelete in FAllowedOperations) then exit;
VK_INSERT:if not (aoInsert in FAllowedOperations) then exit;
ord('T'):begin
if ssCtrl in Shift then
begin
OnFilterBy(Self);
exit;
end;
end;
ord('E'):begin
if (ssCtrl in Shift) and (rdgAllowQuickFilter in FOptionsRx) then
begin
OnFilter(Self);
exit;
end;
end;
ord('Q'):begin
if ssCtrl in Shift then
begin
OnFilterClose(Self);
exit;
end;
end;
ord('C'):begin
if ssCtrl in Shift then
begin
OnSortBy(Self);
exit;
end;
end;
VK_RETURN:if (aoAppend in FAllowedOperations) and (EditorMode) and (Col=ColCount-1) and (Row=RowCount-1) then
if DataSource.DataSet.State=dsInsert then
begin
@ -2157,6 +2229,20 @@ begin
end;
end;
inherited KeyDown(Key, Shift);
if Key <> 0 then
begin
case FKeyStrokes.FindRxCommand(Key, Shift) of
rxgcShowFindDlg : DoShowFindDlg;
rxgcShowColumnsDlg : DoShowColumnsDlg;
rxgcShowFilterDlg : OnFilterBy(Self);
rxgcShowQuickFilter : DoShowQuickFilter;
rxgcHideQuickFilter : OnFilterClose(Self);
rxgcShowSortDlg : OnSortBy(Self);
else
exit;
end;
Key:=0;
end;
end;
function TRxDBGrid.CreateColumns: TGridColumns;
@ -2682,6 +2768,12 @@ begin
ShowColumnsDialog;
end;
procedure TRxDBGrid.Loaded;
begin
inherited Loaded;
UpdateJMenuKeys;
end;
Procedure TRxDBGrid.GetOnCreateLookup;
begin
if Assigned(F_CreateLookup) then
@ -2701,6 +2793,9 @@ begin
Options:=Options - [dgCancelOnExit];
{$ENDIF}
FKeyStrokes:=TRxDBGridKeyStrokes.Create(Self);
FKeyStrokes.ResetDefaults;
FMarkerUp := LoadLazResBitmapImage('rx_markerup');
FMarkerDown := LoadLazResBitmapImage('rx_markerdown');
Options:=Options - [dgTabs];
@ -2749,6 +2844,8 @@ begin
FRxDbGridDateEditor:=TRxDBGridDateEditor.Create(nil);
FRxDbGridDateEditor.Name:='RxDbGridDateEditor';
FRxDbGridDateEditor.Visible:=false;
UpdateJMenuKeys;
end;
destructor TRxDBGrid.Destroy;
@ -2765,6 +2862,7 @@ begin
FreeAndNil(F_LastFilter);
FreeAndNil(F_SortListField);
FreeAndNil(FKeyStrokes);
inherited Destroy;
end;
@ -3430,6 +3528,116 @@ begin
end;
{ TRxDBGridKeyStroke }
procedure TRxDBGridKeyStroke.SetCommand(const AValue: TRxDBGridCommand);
begin
if FCommand=AValue then exit;
FCommand:=AValue;
Changed(false);
end;
procedure TRxDBGridKeyStroke.SetShortCut(const AValue: TShortCut);
begin
if FShortCut=AValue then exit;
FShortCut:=AValue;
Menus.ShortCutToKey(FShortCut, FKey, FShift);
Changed(false);
end;
function TRxDBGridKeyStroke.GetDisplayName: string;
begin
IntToIdent(Ord(FCommand), Result, EditorCommandStrs);
Result:=Result + ' - ' + ShortCutToText(FShortCut);
end;
{ TRxDBGridKeyStrokes }
function TRxDBGridKeyStrokes.GetItem(Index: Integer): TRxDBGridKeyStroke;
begin
Result := TRxDBGridKeyStroke(inherited GetItem(Index));
end;
procedure TRxDBGridKeyStrokes.SetItem(Index: Integer;
const AValue: TRxDBGridKeyStroke);
begin
inherited SetItem(Index, AValue);
end;
procedure TRxDBGridKeyStrokes.Update(Item: TCollectionItem);
begin
inherited Update(Item);
if (UpdateCount = 0) and Assigned(Owner) and Assigned(TRxDBGrid(Owner).FKeyStrokes) then
TRxDBGrid(Owner).UpdateJMenuKeys;
end;
constructor TRxDBGridKeyStrokes.Create(AOwner: TPersistent);
begin
inherited Create(TRxDBGridKeyStroke);
FOwner := AOwner;
end;
function TRxDBGridKeyStrokes.Add: TRxDBGridKeyStroke;
begin
Result := TRxDBGridKeyStroke(inherited Add);
Result.Enabled:=true;
end;
function TRxDBGridKeyStrokes.AddE(ACommand: TRxDBGridCommand; AShortCut: TShortCut
): TRxDBGridKeyStroke;
begin
Result:=nil;
Result:=Add;
Result.FShortCut:=AShortCut;
Result.FCommand:=ACommand;
end;
procedure TRxDBGridKeyStrokes.ResetDefaults;
begin
Clear;
AddE(rxgcShowFindDlg, Menus.ShortCut(Ord('F'), [ssCtrl]));
AddE(rxgcShowColumnsDlg, Menus.ShortCut(Ord('W'), [ssCtrl]));
AddE(rxgcShowFilterDlg, Menus.ShortCut(Ord('T'), [ssCtrl]));
AddE(rxgcShowSortDlg, Menus.ShortCut(Ord('S'), [ssCtrl]));
AddE(rxgcShowQuickFilter, Menus.ShortCut(Ord('Q'), [ssCtrl]));
AddE(rxgcHideQuickFilter, Menus.ShortCut(Ord('H'), [ssCtrl]));
end;
function TRxDBGridKeyStrokes.FindRxCommand(AKey: word; AShift: TShiftState
): TRxDBGridCommand;
var
i:integer;
K:TRxDBGridKeyStroke;
begin
Result:=rxgcNone;
for i:=0 to Count-1 do
begin
K:=Items[i];
if (K.FKey = AKey) and (K.FShift = AShift) and (K.FEnabled) then
begin
Result:=K.FCommand;
exit;
end;
end;
end;
function TRxDBGridKeyStrokes.FindRxKeyStrokes(ACommand: TRxDBGridCommand
): TRxDBGridKeyStroke;
var
i:integer;
begin
Result:=nil;
for i:=0 to Count-1 do
begin
if (Items[i].Command = ACommand) then
begin
Result:=Items[i];
exit;
end;
end;
end;
initialization
{$I rxdbgrid.lrs}
// {$I rx_markerdown.lrs}