RxFPC:RxDBGrid - add metod for add custom command for RxDBGrid tools menu

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5138 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2016-09-09 09:55:03 +00:00
parent 739b507e7b
commit 7f58cbbef8
3 changed files with 76 additions and 68 deletions

View File

@ -11,7 +11,7 @@
<WindowIndex Value="-1"/> <WindowIndex Value="-1"/>
<TopLine Value="-1"/> <TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/> <CursorPos X="-1" Y="-1"/>
<UsageCount Value="21"/> <UsageCount Value="23"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
@ -21,18 +21,18 @@
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="Unit1"/> <UnitName Value="Unit1"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<TopLine Value="11"/> <TopLine Value="54"/>
<CursorPos X="6" Y="21"/> <CursorPos X="44" Y="61"/>
<UsageCount Value="21"/> <UsageCount Value="23"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<TopLine Value="4375"/> <TopLine Value="788"/>
<CursorPos X="34" Y="4400"/> <CursorPos X="44" Y="788"/>
<UsageCount Value="10"/> <UsageCount Value="11"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 Y="5181" ID="1"/> <Item0 Y="5181" ID="1"/>
</Bookmarks> </Bookmarks>
@ -43,7 +43,7 @@
<EditorIndex Value="4"/> <EditorIndex Value="4"/>
<TopLine Value="102"/> <TopLine Value="102"/>
<CursorPos X="73" Y="118"/> <CursorPos X="73" Y="118"/>
<UsageCount Value="10"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
@ -51,7 +51,7 @@
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<TopLine Value="381"/> <TopLine Value="381"/>
<CursorPos X="30" Y="386"/> <CursorPos X="30" Y="386"/>
<UsageCount Value="10"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
@ -59,127 +59,128 @@
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<TopLine Value="1358"/> <TopLine Value="1358"/>
<CursorPos X="51" Y="1372"/> <CursorPos X="51" Y="1372"/>
<UsageCount Value="10"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit5> </Unit5>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="5285" Column="47" TopLine="5260"/> <Caret Line="3741" Column="54" TopLine="3717"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="6155" Column="16" TopLine="6129"/> <Caret Line="4741" Column="44" TopLine="4716"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="446" Column="17" TopLine="425"/> <Caret Line="5153" Column="75" TopLine="5128"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="3741" Column="54" TopLine="3717"/> <Caret Line="5285" Column="47" TopLine="5260"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="4741" Column="83" TopLine="4729"/> <Caret Line="6154" Column="14" TopLine="6129"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="5151" Column="63" TopLine="5128"/> <Caret Line="5153" Column="76" TopLine="5132"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="387" Column="52" TopLine="359"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="369" Column="16" TopLine="344"/> <Caret Line="397" Column="51" TopLine="368"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="390" Column="67" TopLine="366"/> <Caret Line="3746" Column="54" TopLine="3721"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="3741" Column="54" TopLine="3717"/> <Caret Line="750" Column="15" TopLine="737"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="4741" Column="44" TopLine="4716"/> <Caret Line="709" Column="15" TopLine="696"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="5153" Column="75" TopLine="5128"/> <Caret Line="3745" Column="94" TopLine="3721"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="5285" Column="47" TopLine="5260"/> <Caret Line="4748" Column="44" TopLine="4723"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="6154" Column="14" TopLine="6129"/> <Caret Line="5175" Column="29" TopLine="5152"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="5153" Column="76" TopLine="5132"/> <Caret Line="470" Column="14" TopLine="462"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="387" Column="52" TopLine="359"/> <Caret Line="5181" TopLine="5154"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="397" Column="51" TopLine="368"/> <Caret Line="6177" Column="59" TopLine="6169"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="3746" Column="54" TopLine="3721"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../dbutils.pas"/>
<Caret Line="750" Column="15" TopLine="737"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../dbutils.pas"/>
<Caret Line="709" Column="15" TopLine="696"/> <Caret Line="386" Column="27" TopLine="382"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="3745" Column="94" TopLine="3721"/> <Caret Line="41" Column="36" TopLine="15"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="4748" Column="44" TopLine="4723"/> <Caret Line="588" Column="15" TopLine="581"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="5175" Column="29" TopLine="5152"/> <Caret Line="2515" Column="38" TopLine="2490"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="470" Column="14" TopLine="462"/> <Caret Line="2516" Column="16" TopLine="2491"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="5181" TopLine="5154"/> <Caret Line="788" Column="74" TopLine="784"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="6177" Column="59" TopLine="6169"/> <Caret Line="21" Column="6" TopLine="11"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="61" Column="36" TopLine="44"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="../../dbutils.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="788" Column="44" TopLine="775"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="../../dbutils.pas"/> <Filename Value="../../rxdbgrid.pas"/>
<Caret Line="386" Column="27" TopLine="382"/> <Caret Line="2509" Column="59" TopLine="2509"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="../../rxdbgrid.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="41" Column="36" TopLine="15"/> <Caret Line="30" Column="30" TopLine="13"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectSession> </ProjectSession>

View File

@ -27,7 +27,7 @@ type
procedure CheckBox1Change(Sender: TObject); procedure CheckBox1Change(Sender: TObject);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
private private
procedure RxDBGridInfoBox(Sender: TObject);
public public
end; end;
@ -58,6 +58,13 @@ begin
RxMemoryData1.Post; RxMemoryData1.Post;
end; end;
RxDBGrid1.CreateToolMenuItem(#0, '-', nil);
RxDBGrid1.CreateToolMenuItem(#0, 'Show info box', @RxDBGridInfoBox);
end;
procedure TForm1.RxDBGridInfoBox(Sender: TObject);
begin
ShowMessage('Hello world form RXDBGrid tools menu');
end; end;
procedure TForm1.CheckBox1Change(Sender: TObject); procedure TForm1.CheckBox1Change(Sender: TObject);

View File

@ -785,6 +785,7 @@ type
procedure DeSelectAllRows; procedure DeSelectAllRows;
procedure InvertSelection; procedure InvertSelection;
procedure CopyCellValue; procedure CopyCellValue;
procedure CreateToolMenuItem(ShortCut: char; const ACaption: string; MenuAction: TNotifyEvent);
procedure SetSort(AFields: array of String; ASortMarkers: array of TSortMarker; PreformSort: Boolean = False); procedure SetSort(AFields: array of String; ASortMarkers: array of TSortMarker; PreformSort: Boolean = False);
@ -2505,33 +2506,32 @@ begin
FFooterOptions.DrawFullLine := Value; FFooterOptions.DrawFullLine := Value;
end; end;
procedure TRxDBGrid.CreateToolMenuItem(ShortCut: char; const ACaption: string;
MenuAction: TNotifyEvent);
var
R: TMenuItem;
begin
R := TMenuItem.Create(F_PopupMenu);
F_PopupMenu.Items.Add(R);
R.Caption := ACaption;
if ShortCut <> #0 then
R.ShortCut := KeyToShortCut(Ord(ShortCut), [ssCtrl]);
R.OnClick := MenuAction;
end;
procedure TRxDBGrid.DoCreateJMenu; procedure TRxDBGrid.DoCreateJMenu;
procedure CreateMenuItem(ShortCut: char; const ACaption: string;
MenuAction: TNotifyEvent);
var
R: TMenuItem;
begin
R := TMenuItem.Create(F_PopupMenu);
F_PopupMenu.Items.Add(R);
R.Caption := ACaption;
if ShortCut <> #0 then
R.ShortCut := KeyToShortCut(Ord(ShortCut), [ssCtrl]);
R.OnClick := MenuAction;
end;
begin begin
F_PopupMenu := TPopupMenu.Create(Self); F_PopupMenu := TPopupMenu.Create(Self);
F_PopupMenu.Name := 'OptionsMenu'; F_PopupMenu.Name := 'OptionsMenu';
CreateMenuItem('F', sRxDBGridFind, @OnFind); CreateToolMenuItem('F', sRxDBGridFind, @OnFind);
CreateMenuItem('T', sRxDBGridFilter, @OnFilterBy); CreateToolMenuItem('T', sRxDBGridFilter, @OnFilterBy);
CreateMenuItem('E', sRxDBGridFilterSimple, @OnFilter); CreateToolMenuItem('E', sRxDBGridFilterSimple, @OnFilter);
CreateMenuItem('Q', sRxDBGridFilterClear, @OnFilterClose); CreateToolMenuItem('Q', sRxDBGridFilterClear, @OnFilterClose);
CreateMenuItem(#0, '-', nil); CreateToolMenuItem(#0, '-', nil);
CreateMenuItem('C', sRxDBGridSortByColumns, @OnSortBy); CreateToolMenuItem('C', sRxDBGridSortByColumns, @OnSortBy);
CreateMenuItem('W', sRxDBGridSelectColumns, @OnChooseVisibleFields); CreateToolMenuItem('W', sRxDBGridSelectColumns, @OnChooseVisibleFields);
CreateMenuItem('A', sRxDBGridSelectAllRows, @OnSelectAllRows); CreateToolMenuItem('A', sRxDBGridSelectAllRows, @OnSelectAllRows);
CreateMenuItem(#0, sRxDBGridCopyCellValue, @OnCopyCellValue); CreateToolMenuItem(#0, sRxDBGridCopyCellValue, @OnCopyCellValue);
end; end;
function TRxDBGrid.GetPropertyStorage: TCustomPropertyStorage; function TRxDBGrid.GetPropertyStorage: TCustomPropertyStorage;