Straighten popup menus for data grid and query grids - use one for both, and disable those few irrelevant items when on a query grid. Reveals some missing items for query grids, such as "Set NULL". Also, turn "Set NULL" into a TAction including an icon.

This commit is contained in:
Ansgar Becker
2010-05-30 23:09:06 +00:00
parent 3fe935b5be
commit 00cf4d95cc
6 changed files with 97 additions and 136 deletions

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 494 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 517 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 639 B

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

View File

@@ -1510,7 +1510,7 @@ object MainForm: TMainForm
Header.ParentFont = True
IncrementalSearch = isAll
LineStyle = lsSolid
PopupMenu = popupResultGrid
PopupMenu = popupDataGrid
TabOrder = 1
TreeOptions.AutoOptions = [toAutoDropExpand, toAutoScroll, toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes]
TreeOptions.MiscOptions = [toAcceptOLEDrop, toEditable, toFullRepaintOnResize, toGridExtensions, toInitOnSave, toToggleOnDblClick, toWheelPanning, toVariableNodeHeight, toEditOnClick]
@@ -2510,6 +2510,15 @@ object MainForm: TMainForm
ImageIndex = 80
OnExecute = actCreateDBObjectExecute
end
object actDataSetNull: TAction
Category = 'Data'
Caption = 'Set NULL'
Enabled = False
Hint = 'Set focused cell to NULL'
ImageIndex = 92
ShortCut = 24654
OnExecute = actDataSetNullExecute
end
end
object SaveDialog2: TSaveDialog
DefaultExt = 'reg'
@@ -4461,129 +4470,129 @@ object MainForm: TMainForm
0000000000000000000000000000000000000000000045454570828282D69797
97FB969696FB0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000D275C78023A
A1DF0340BAFE023DA4E30020587A000000000000000000000000000000000000
000000000000000000000000000000000000000000000000001D000000340000
00360000003600000036000000360000003600000036000000360C275B95023C
A1E60340BAFE023CA3E902205889000000000000000000000000000000000000
0000103951F7265C84FB4685B9FB316A8EC10000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000006262
629A2F2F2F4E0000000000000000000000000000000000000000000000001B1B
1B4D1A1A1A4A0000000300000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000005574ABFF2563C8FF1F75
E6FF0477EAFF0062DDFF034ABAFC0020587A0000000000000000000000000000
0000000000000000000000000000000000000000000000000034EFEFEFF5FAFA
FAFDFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFF8AA8DFFF2664CAFF1F75
E6FF0477EAFF0062DDFF034BB9FD0020587A0000000000000000000000000000
0000296280FB93C7F9FF90C9F9FF3F84C9FF195DA1F300000000000000000000
0000000000000000000000000000000000000000000000000000000000003232
324B919191E44A4A4A7C00000000000000000000000000000000363636804B4B
4BC0181818450000000000000000000000000000000000000000000000000000
00000000000000000000140F091C7D5B3AAE1F170E2C00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000001B56BEFF619CF4FF167D
0000000000000000000000000000000000000000000100000036FBFBFBFEFCFC
FCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFF1C57BFFF619CF4FF167D
FFFF0074F8FF0074EEFF0266E1FF023CA5E40000000000000000000000000000
00004188A9FFE0F2FFFF5299D8FF1878BDFF4797C4FF3A81B9FD4554619E0000
0000000000000000000000000000000000000000000000000000000000000000
00007F7F7FBC9D9D9DF75E5E5E9C00000000000000004E4E4EA36D6D6DF34848
48AE000000000000000000000000000000000000000000000000000000000000
000000000000000000000906030CAD7F51F1B18253F7241A1032000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000101010500000000000000000440BBFFADCDFEFFFFFF
0000000000000000000000000000000000000000000100000036FCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFFFCFCFCFFFBFBFBFFFBFBFBFF0441BBFFADCDFEFFFFFF
FFFFFFFFFFFFFFFFFFFF167DEFFF0340BAFE0000000000000000000000000000
00009BB9CEFF78B5D5FF8FB6D1FF53C9E4FF59DFF5FF76D0EDFF4996D7FF727E
88EA000000000000000000000000000000000000000000000000000000000000
000022222230AAAAAAFDA1A1A1FE767676C46E6E6EC4848484FE767676F40F0F
0F24000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000009B7249D9E2CEB9FFB28254F8231A10310000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000303030A3A3A3A9E23232362000000001A52B9FF8CB4F6FF4B91
0000000000000000000000000000000000000000000100000036FCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFFFBFBFBFFFBFBFBFFFAFAFAFF225AC1FF8CB4F6FF4B91
FFFF1075FFFF1F85FFFF3E89EBFF023AA0DE0000000000000000000000000000
00000000000095B7C9FF73B8D6FFC1F6FDFF61DFF7FF5BE2F8FF77D3F0FF4696
DAFF758089ED0000000000000000000000000000000000000000000000000000
0000000000006A6A6A96AAAAAAFCE7E4E3FFE5E2E1FF8D8D8DFC464646870000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000003D2D1C55AD7F51F1F9F6F1FFE2CDB8FFB68556FE9E74
4ADC966F47D3684C30910B08040F000000000000000000000000000000000000
00000303030A3A3A3A9E727272E45B5B5BDA23232362728EC1FF3973D0FF8CB4
F7FFB7D6FEFF70A7F5FF2B68C8FC021C4F6D0000000000000000000000000000
4ADC966F47D3684C30910B08040F000000000000000100000036FCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFFFBFBFBFFFBFBFBFFFBFBFBFF92ADE1FF3B74D2FF8CB4
F7FFB7D6FEFF70A7F5FF2B68C8FD021B4F6E0000000000000000000000000000
00000303030A3A3A3A9E98BDCFFF75CBE7FFC7F7FDFF5CDCF5FF58E1F7FF79D4
F1FF4493D7FE0A1C2C34000000000000000061452D6F593D27660D09050F0000
0000000000000D0D0D12ABABABF3ABABABFEA1A1A1FE898989E50707070C0000
00000000000000000000351D0E3F47281155000000000F0B06155D442B811711
0A210000000061472D87CFAD8DFFEBDED1FFFDFCFAFFFDFCFAFFFDFBF8FFF4EB
E3FFF1E7DDFFD8BDA2FFB08153F6513C26720000000000000000000000000303
030A3A3A3A9E7D7D7DE7ADADADFF9B9B9BFA5B5B5BDA232323626E8ABDFF2058
BEFF0441BBFF124CB3FD001F5778000000000000000000000000000000000303
E3FFF1E7DDFFD8BDA2FFB08153F6513C26720000000100000036FCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFBFBFBFF91ACE0FF285F
C7FF0441BBFF1D58C0FF01205695000000010000000000000000000000000303
030A3A3A3A9E7D7D7DE7ADADADFFA3CCD9FF77D3EEFFC7F7FDFF5DDCF5FF59E2
F7FF78D6F2FF398ACBE80C1A273000000000C28D63DBE4AD83FFD69564F60504
01063624153E00000000787878A3DAD9D8FFDBD9D8FF676767A2000000002416
092C04010005BE6C30E4D98547FFB2652DD500000000060502097F5E3CB38360
3DB71B130D25A57A4EE8F8F1ECFFFDFBF8FFF8F0E7FFF7EFE6FFF7EEE4FFF8F0
E8FFF8F1EAFFFDFBF9FFF2E9E0FF9B7249D800000000000000000303030A3A3A
3A9E858585E7BDBDBDFFB4B4B4FFAAAAAAFF979797FA5A5A5ADA232323620000
00000000000000000000000000000000000000000000000000000303030A3A3A
E8FFF8F1EAFFFDFBF9FFF2E9E0FF9B7249D80000000100000036FCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFAFAFAFFF9F9F9FFF6F6
F6FFF6F6F6FFFCFCFCFF000000360000000100000000000000000303030A3A3A
3A9E858585E7BDBDBDFFB4B4B4FFAAAAAAFF96BFCDFF7AD4EEFFC3F6FDFF6ADD
F6FF6BCAEDFF61A2D7FF548FC2EC0C161D26DFA67BF9EDC4A6FFE2A373FF0806
0309DF9C66FFCA8A59EA3028213CBBBBBBFBB1B1B1FA352D2648BE753DE1D783
41FF08050209D57D3AFFE3A678FFCB7334F30000000000000000745536A1A898
89BD84613EB8AE8052F3FAF7F2FFFAF3ECFFF8F1E9FFF8F0E7FFF7EFE6FFF7EE
E4FFF6ECE2FFF7EFE7FFF4ECE5FFA0754BDF000000000303030A3A3A3A9E8C8C
8CE7CECECEFFC4C4C4FFB9B9B9FFAEAEAEFFA3A3A3FF909090FA585858DA2323
236200000000000000000000000000000000000000000303030A3A3A3A9E8C8C
E4FFF6ECE2FFF7EFE7FFF4ECE5FFA0754BDF0000000100000036FCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFBFBFBFFF8F8F8FFF6F6F6FFF3F3
F3FFF2F2F2FFFCFCFCFF0000003600000001000000000303030A3A3A3A9E8C8C
8CE7CECECEFFC4C4C4FFB9B9B9FFAEAEAEFFA3A3A3FF88B9C9FF7ED4EDFFB1E3
F9FF8ABFE7FFADD3F6FFC3E0FCFF6199CCF7E0AD85F9EECAACFFE5A97CFF0302
0003DA9B6CF6E3A675FF3726183F3C3C3C4E1F1F1F2A3623133FDD945BFFD083
46F603020003D5813EFFE3A97BFFC87434F0000000002B20133C7A5939AAB6B1
ACBDA89887BDB48455FBFAF6F1FFFAF4EEFFF9F2EAFFF8F1E9FFF8F0E8FFF7EF
E6FFF7EEE4FFF8F1E9FFF3EAE2FF9B734ADA000000002B2B2B776C6C6CDCDEDE
DEFFD2D2D2FFC7C7C7FFBABABAFFB0B0B0FFA4A4A4FF989898FF818181F54E4E
4ED31010102D000000000000000000000000000000002B2B2B776C6C6CDCDEDE
E6FFF7EEE4FFF8F1E9FFF3EAE2FF9B734ADA0000000100000036FCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFFFCFCFCFFFBFBFBFFF8F8F8FFF5F5F5FFF2F2F2FFEFEF
EFFFEDEDEDFFFCFCFCFF0000003600000001000000002B2B2B776C6C6CDCDEDE
DEFFD2D2D2FFC7C7C7FFBABABAFFB0B0B0FFA4A4A4FF989898FF88BDCEFF75BD
E7FFB3D2F0FFE5F3FFFFABD2EFFF407DB5E8C5997AD8EECBADFFE5B088FF0806
0509987051ABE7B48DFF956B49AA3727193F3726173F93633DAAE2A474FF925F
36AB08050209D98846FFE2A678FFB26C33D548352164987E67BDACA398BDBCBA
B9BDBCBAB9BDB6885AFBFAF6F2FFFAF5EFFFFAF4EEFFFAF3EDFFF9F3EBFFF9F2
EBFFF8F1E9FFFAF5EFFFF3EAE2FF9B734ADA000000000303030A3A3A3A9E8C8C
8CE7CECECEFFC4C4C4FFB9B9B9FFAEAEAEFFA3A3A3FF909090FA585858DA2323
236200000000000000000000000000000000000000000303030A3A3A3A9E8C8C
EBFFF8F1E9FFFAF5EFFFF3EAE2FF9B734ADA0000000100000036FCFCFCFFFBFB
FBFFFCFCFCFFFCFCFCFFFBFBFBFFF8F8F8FFF5F5F5FFF1F1F1FFECECECFFEAEA
EAFFE6E6E6FFFCFCFCFF0000003600000001000000000303030A3A3A3A9E8C8C
8CE7CECECEFFC4C4C4FFB9B9B9FFAEAEAEFFA3A3A3FF909090FA585858DAAAD4
E3FF56A4D8FF84B0DBFF449CD0FF0F374D5E846A5690ECC7A8FFEABC9AFF3C2E
244218120E1BC7946FDEE8B48EFFE4AA7DFFE3A678FFE4AB7EFFC08254DE1610
091B38251542DD965DFFE09F6CFF764A278D7A5A3AACB7B3AEBDBCBAB9BDB7B1
ABBDB7B1A9BDB8926CF0E4D1BDFFFAF6F2FFFAF6F1FFFAF6F1FFFAF5F1FFFAF5
F1FFFAF5F0FFF6F0E9FFDCC3ACFF7C5B3AAD00000000000000000303030A3A3A
3A9E858585E7BDBDBDFFB4B4B4FFAAAAAAFF979797FA5A5A5ADA232323620000
00000000000000000000000000000000000000000000000000000303030A3A3A
F1FFFAF5F0FFF6F0E9FFDCC3ACFF7C5B3AAD0000000100000036FCFCFCFFF9F9
F9FFF9F9F9FFF9F9F9FFF7F7F7FFF6F6F6FFF2F2F2FFEBEBEBFFFCFCFCFFFCFC
FCFFFCFCFCFFFCFCFCFF000000360000000100000000000000000303030A3A3A
3A9E858585E7BDBDBDFFB4B4B4FFAAAAAAFF979797FA5A5A5ADA232323620000
00000000000000000000000000000000000028221C2DE8BB99FCEECCAFFFE5B5
91FC1B16111F0B08060C775A4384B18360C6B0815BC6755339840B07040C1B13
0B1FDA945CFCE5AB7EFFD88C50FC24170C2A7F5E3CB3B9B7B3BDB9B4AEBDB7B3
ACBDB7B1ABBDB7A898CBB69069EEB7895BFBB7895CFBB7895BFBB28354F9AC7E
51EFAC7E51EFA3784DE460462E861D150D280000000000000000000000000303
030A3A3A3A9E7D7D7DE7ADADADFF9B9B9BFA5B5B5BDA23232362000000000000
0000000000000000000000000000000000000000000000000000000000000303
51EFAC7E51EFA3784DE460462E861D150D280000000100000036FCFCFCFFF7F7
F7FFF9F9F9FFF7F7F7FFF7F7F7FFF3F3F3FFF0F0F0FFEAEAEAFFFCFCFCFFF6F6
F6FFF4F4F4FF5656569100000020000000000000000000000000000000000303
030A3A3A3A9E7D7D7DE7ADADADFF9B9B9BFA5B5B5BDA23232362000000000000
00000000000000000000000000000000000000000000856E5B90EEC9ADFFEFCA
ACFFE6B894FC3C2F2542080605090000000000000000080603093A2A1D42DD9E
6DFCE5AF85FFE2A778FF7A52318D000000007F5E3CB2B9B6B3BDB9B4AFBDB9B3
ACBDB7B3ACBDB7B1ACBDB7B1A9BDB7AFA9BDB7B3ACBDB4ACA8BD745537A20000
0000000000000000000000000000000000000000000000000000000000000000
00000303030A3A3A3A9E727272E45B5B5BDA2323236200000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000036F9F9F9FDF4F4
F4FFF5F5F5FFF5F5F5FFF5F5F5FFF1F1F1FFEFEFEFFFE9E9E9FFFCFCFCFFE7E7
E7FF545454910000002000000002000000000000000000000000000000000000
00000303030A3A3A3A9E727272E45B5B5BDA2323236200000000000000000000
0000000000000000000000000000000000000000000006050406A88C75B7EECA
ADFFF0CDB3FFEBC1A1FFE8B994FFE8B590FFE6B28AFFE5AE85FFE7B28AFFEABA
98FFE6B087FFA0704DB705040106000000007F5E3CB2B9B6B3BDB9B6B1BDB9B4
AFBDB9B4AFBDB9B4AEBDB9B3AEBDB7B3ACBDB9B6B1BDB4ACA8BD745537A20000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000303030A3A3A3A9E232323620000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000033E9E9E9F0F9F9
F9FDFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFF8F8F8FF5454
5491000000200000000200000000000000000000000000000000000000000000
0000000000000303030A3A3A3A9E232323620000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000006957
4972E3BB9BF6EFCDB0FFF1D0B7FFF1D3BAFFF0D0B8FFEDCBADFFEBBF9FFFDDA7
7DF6654C3772000000000000000000000000684C3091A99B8CBDB9B6B3BDB9B6
B3BDB9B6B3BDB9B6B3BDB9B6B3BDB9B6B1BDB6B1ACBDA3917EBD5C432C800000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000001010105000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000001C000000330000
0036000000360000003600000036000000360000003600000036000000360000
0020000000020000000000000000000000000000000000000000000000000000
0000000000000000000001010105000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000231E1827816B5B8DBC9B81CCE8BC9CFCE8BB97FCBA9578CC7F64508D231C
@@ -7873,9 +7882,7 @@ object MainForm: TMainForm
Action = actPaste
end
object setNULL1: TMenuItem
Caption = 'Set NULL'
ShortCut = 24654
OnClick = setNULL1Click
Action = actDataSetNull
end
object N4a: TMenuItem
Caption = '-'
@@ -8107,55 +8114,6 @@ object MainForm: TMainForm
Action = actRefresh
end
end
object popupResultGrid: TPopupMenu
Images = ImageListMain
Left = 136
Top = 96
object Copy4: TMenuItem
Action = actCopy
end
object HTMLview1: TMenuItem
Action = actImageView
end
object N2: TMenuItem
Caption = '-'
end
object Insertrow1: TMenuItem
Action = actDataInsert
end
object Duplicaterow2: TMenuItem
Action = actDataDuplicateRow
end
object Cancelediting2: TMenuItem
Action = actDataCancelChanges
end
object Post1: TMenuItem
Action = actDataPostChanges
end
object Deleteselectedrows1: TMenuItem
Action = actDataDelete
end
object N14: TMenuItem
Caption = '-'
end
object Copyrecords1: TMenuItem
Tag = 48
Action = actCopyAsCSV
end
object CopycontentsasHTML2: TMenuItem
Tag = 49
Action = actCopyAsHTML
end
object CopyasXMLdata2: TMenuItem
Action = actCopyAsXML
end
object CopygriddataasSQL1: TMenuItem
Action = actCopyAsSQL
end
object Exportdata3: TMenuItem
Action = actExportData
end
end
object TimerConnected: TTimer
OnTimer = TimerConnectedTimer
Left = 103

View File

@@ -240,8 +240,6 @@ type
N5a: TMenuItem;
popupDataGrid: TPopupMenu;
Refresh3: TMenuItem;
popupResultGrid: TPopupMenu;
Copyrecords1: TMenuItem;
CopyasCSVData1: TMenuItem;
N9a: TMenuItem;
TimerConnected: TTimer;
@@ -252,7 +250,6 @@ type
N15: TMenuItem;
N17: TMenuItem;
CopycontentsasHTML1: TMenuItem;
CopycontentsasHTML2: TMenuItem;
Copy3: TMenuItem;
Paste2: TMenuItem;
N4a: TMenuItem;
@@ -282,13 +279,9 @@ type
QF9: TMenuItem;
QF12: TMenuItem;
CopyasXMLdata3: TMenuItem;
CopyasXMLdata2: TMenuItem;
Exportdata3: TMenuItem;
Exportdata2: TMenuItem;
SaveDialogExportData: TSaveDialog;
N11a: TMenuItem;
Copy4: TMenuItem;
N14: TMenuItem;
DataInsertDateTime: TMenuItem;
DataTimestamp: TMenuItem;
DataDateTime: TMenuItem;
@@ -296,7 +289,6 @@ type
DataDate: TMenuItem;
DataYear: TMenuItem;
ViewasHTML1: TMenuItem;
HTMLview1: TMenuItem;
InsertfilesintoBLOBfields3: TMenuItem;
N19: TMenuItem;
setNULL1: TMenuItem;
@@ -384,7 +376,6 @@ type
Cancelediting1: TMenuItem;
DataPost1: TMenuItem;
menuShowSizeColumn: TMenuItem;
CopygriddataasSQL1: TMenuItem;
CopygriddataasSQL2: TMenuItem;
menuSelectBGColor: TMenuItem;
actPreviousTab: TPreviousTab;
@@ -482,14 +473,9 @@ type
Runroutines1: TMenuItem;
actCreateEvent: TAction;
Event1: TMenuItem;
Deleteselectedrows1: TMenuItem;
Insertrow1: TMenuItem;
Duplicaterow2: TMenuItem;
Post1: TMenuItem;
Cancelediting2: TMenuItem;
N2: TMenuItem;
tabsetQuery: TTabSet;
BalloonHint1: TBalloonHint;
actDataSetNull: TAction;
procedure actCreateDBObjectExecute(Sender: TObject);
procedure menuConnectionsPopup(Sender: TObject);
procedure actExitApplicationExecute(Sender: TObject);
@@ -591,7 +577,7 @@ type
procedure popupDataGridPopup(Sender: TObject);
procedure QFvaluesClick(Sender: TObject);
procedure InsertDate(Sender: TObject);
procedure setNULL1Click(Sender: TObject);
procedure actDataSetNullExecute(Sender: TObject);
function QueryLoad( filename: String; ReplaceContent: Boolean = true ): Boolean;
procedure AnyGridCreateEditor(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; out EditLink: IVTEditLink);
@@ -3534,10 +3520,14 @@ var
Data: TMySQLQuery;
begin
// Load remaining data on a partially loaded row in data grid
RowNum := Grid.GetNodeData(Node);
Data := GridResult(Grid);
Data.RecNo := RowNum^;
Result := Data.EnsureFullRow;
if Grid <> DataGrid then
Result := True
else begin
RowNum := Grid.GetNodeData(Node);
Data := GridResult(Grid);
Data.RecNo := RowNum^;
Result := Data.EnsureFullRow;
end;
end;
@@ -4090,7 +4080,7 @@ begin
actCopyAsSQL.Enabled := inDataOrQueryTabNotEmpty;
actExportData.Enabled := inDataOrQueryTabNotEmpty;
actImageView.Enabled := inDataOrQueryTabNotEmpty and Assigned(Grid.FocusedNode);
setNull1.Enabled := inDataOrQueryTab and Assigned(Results) and Assigned(Grid.FocusedNode);
actDataSetNull.Enabled := inDataOrQueryTab and Assigned(Results) and Assigned(Grid.FocusedNode);
// Manually invoke OnChange event of tabset to fill helper list with data
if QueryTabActive then RefreshQueryHelpers;
@@ -4964,18 +4954,28 @@ end;
procedure TMainForm.popupDataGridPopup(Sender: TObject);
var
Grid: TVirtualStringTree;
Results: TMySQLQuery;
y,m,d,h,i,s,ms : Word;
cpText, Col, value : String;
CellFocused: Boolean;
CellFocused, InDataGrid: Boolean;
RowNumber: PCardinal;
const
CLPBRD : String = 'CLIPBOARD';
begin
CellFocused := Assigned(DataGrid.FocusedNode) and (DataGrid.FocusedColumn > NoColumn);
Grid := ActiveGrid;
CellFocused := Assigned(Grid.FocusedNode) and (Grid.FocusedColumn > NoColumn);
InDataGrid := Grid = DataGrid;
DataInsertDateTime.Enabled := CellFocused;
QFvalues.Enabled := CellFocused;
menuQuickFilter.Enabled := InDataGrid;
actDataResetSorting.Enabled := InDataGrid;
menuSQLHelpData.Enabled := InDataGrid;
Refresh3.Enabled := InDataGrid;
if not CellFocused then
Exit;
Results := GridResult(Grid);
decodedate(now, y, m, d);
decodetime(now, h, i, s, ms);
@@ -4986,12 +4986,12 @@ begin
DataYear.Caption := Format('%.4d', [y]);
// Manipulate the Quick-filter menuitems
AnyGridEnsureFullRow(DataGrid, DataGrid.FocusedNode);
RowNumber := DataGrid.GetNodeData(DataGrid.FocusedNode);
DatagridResult.RecNo := RowNumber^;
Col := mask(DatagridResult.ColumnNames[DataGrid.FocusedColumn]);
AnyGridEnsureFullRow(Grid, Grid.FocusedNode);
RowNumber := Grid.GetNodeData(Grid.FocusedNode);
Results.RecNo := RowNumber^;
Col := mask(Results.ColumnNames[Grid.FocusedColumn]);
// 1. block: include selected columnname and value from datagrid in caption
if DatagridResult.IsNull(DataGrid.FocusedColumn) then begin
if Results.IsNull(Grid.FocusedColumn) then begin
QF1.Hint := Col + ' IS NULL';
QF2.Hint := Col + ' IS NOT NULL';
QF3.Visible := False;
@@ -5000,7 +5000,7 @@ begin
QF6.Visible := False;
QF7.Visible := False;
end else begin
value := DataGrid.Text[DataGrid.FocusedNode, DataGrid.FocusedColumn];
value := Grid.Text[Grid.FocusedNode, Grid.FocusedColumn];
QF1.Hint := Col + ' = ' + esc( value );
QF2.Hint := Col + ' != ' + esc( value );
QF3.Hint := Col + ' > ' + esc( value );
@@ -5087,12 +5087,18 @@ end;
procedure TMainForm.InsertDate(Sender: TObject);
var d : String;
var
d: String;
Grid: TVirtualStringTree;
begin
// Insert date/time-value into table
d := (sender as TMenuItem).Caption;
delete(d, Pos('&', d), 1);
DataGrid.Text[DataGrid.FocusedNode, DataGrid.FocusedColumn] := d;
d := StripHotkey((Sender as TMenuItem).Caption);
Grid := ActiveGrid;
try
Grid.Text[Grid.FocusedNode, Grid.FocusedColumn] := d;
except on E:EDatabaseError do
MessageDlg(E.Message, mtError, [mbOK], 0);
end;
end;
@@ -6913,16 +6919,13 @@ begin
end;
{**
Only allow grid editing if there is a good key available
}
procedure TMainForm.setNULL1Click(Sender: TObject);
procedure TMainForm.actDataSetNullExecute(Sender: TObject);
var
RowNum: PCardinal;
Grid: TVirtualStringTree;
Results: TMySQLQuery;
begin
// Internally calls OnNewText event:
// Set cell to NULL value
Grid := ActiveGrid;
RowNum := Grid.GetNodeData(Grid.FocusedNode);
Results := GridResult(Grid);