CGDevTools Forum

Welcome to the Official CGDevTools Support Community Forums.

OnClick for SubMenu Items

by zsleo » 30 Nov 2015 04:21

First time I am using Vertical Menu.

How do I find the the tag value for SubMenu Item clicked?

For example below the top level items all work okay but lv_ItemV is always nil for SubItems:

procedure TiwfrmMain.iwcgjqvrtmnMainMenuJQVertMenuOptionsClick(Sender: TObject; AParams: TStringList);
var
lv_I: Integer;
lv_ItemV: TIWCGJQVertMenuItem;
begin
lv_ItemV := iwcgjqvrtmnMainMenu.Items.GetByUniqueName(AParams.Values['itemId']);
if lv_ItemV = nil then
Exit;

lv_I := lv_ItemV.Tag;

end;


TIA
zsleo
 
Posts: 776
Joined: 03 Feb 2013 03:33

by Alexander Bulei » 30 Nov 2015 11:38

Hi zsleo,

GetByUniqueName


Please use GetItemByUniqueName instead.
GetByUniqueName method fixed in next beta build.
Thanks.

Best Regards.
Group: Developers | Support Team

  • info [at] cgdevtools.com - General information
  • sales [at] cgdevtools.com - Sales department
  • support [at] cgdevtools.com - Product and Technical Support
User avatar
Alexander Bulei
Site Admin
 
Posts: 3635
Joined: 15 May 2012 08:52
Location: Mealhada, Portugal

by zsleo » 30 Nov 2015 22:50

I cant find GetItemByUniqueName.

Is this in the net release?

Regards
zsleo
 
Posts: 776
Joined: 03 Feb 2013 03:33

by Alexander Bulei » 01 Dec 2015 10:11

Hi zsleo,

Sorry for misinformation.
It's protected, but I will upload new beta version now, and it contain the fixed GetByUniqueName method.
Thanks.

Best Regards.
Group: Developers | Support Team

  • info [at] cgdevtools.com - General information
  • sales [at] cgdevtools.com - Sales department
  • support [at] cgdevtools.com - Product and Technical Support
User avatar
Alexander Bulei
Site Admin
 
Posts: 3635
Joined: 15 May 2012 08:52
Location: Mealhada, Portugal

by zsleo » 01 Dec 2015 13:32

Thanks, Alexander.

I will download it in the morning (my time)

Regards
zsleo
 
Posts: 776
Joined: 03 Feb 2013 03:33

by zsleo » 01 Dec 2015 23:22

Thanks!

Working well in initial testing
zsleo
 
Posts: 776
Joined: 03 Feb 2013 03:33

by amirreza_asadpour » 21 Jun 2016 20:08

hi please guide me better i dont khow how to work
i cant creat on click event for vert menu sub item items , please guide me with example .

tnx for your best support
amirreza_asadpour
 
Posts: 6
Joined: 29 Sep 2015 22:10

by Alexander Bulei » 22 Jun 2016 09:27

Hi amirreza_asadpour,

Basically, you need assign the JQVertMenu.OnClick event, and then, in event check the AParams parameter, you will find the itemId.

If you need to get the item, use the GetByUniqueName method.

Also, you can check the source of JQueryDemoV3_IW14 demo.

Best Regards.
Group: Developers | Support Team

  • info [at] cgdevtools.com - General information
  • sales [at] cgdevtools.com - Sales department
  • support [at] cgdevtools.com - Product and Technical Support
User avatar
Alexander Bulei
Site Admin
 
Posts: 3635
Joined: 15 May 2012 08:52
Location: Mealhada, Portugal

by zsleo » 28 Mar 2018 08:02

I have recently upgraded to Delphi 10.2.3 (from XE), IW 14.2.27 and CGD 4.1.0.50 (from 4.1.0.31)

I have a Vertival menu that is created at runtime and popolated from a DB Query.

The code that was working previously is now not working.

The problem code is that no longer working is occurs once the selected menu item with item-index greater than 15 and or the selected menu item is in a sub-menu with sub-menu item-index above 0

Code: Select all
  lv_itemId := AParams.Values['itemId']; {<<== returning 'IWCGJQVRTMNMAINMENU_1_3' which is what is expected}
  lv_I := -1;

  try
    lv_I := iwcgjqvrtmnMainMenu.Items.GetByUniqueName(lv_itemId).Tag; {<<== line 1033}
  except
    UserSession.LogToFile('M Not Exist: ' + AParams.Values['itemId']);
    Exit;
  end;


The GetByUniqueName at line 1033 is throwing an exception. Here is the stack dump:


Code: Select all
date/time          : 2018-03-28, 17:52:03, 719ms
computer name      : XXXXXX
user name          : xxx.xxx
operating system   : Windows 10 x64 build 16299
system language    : English
system up time     : 8 hours 53 minutes
program up time    : 4 minutes 10 seconds
processors         : 8x Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
physical memory    : 9577/16341 MB (free/total)
free disk space    : (C:) 126.41 GB (D:) 479.15 GB
display mode       : 2560x1440, 32 bit
process id         : $44bc
allocated memory   : 60.17 MB
largest free block : 836.13 MB
command line       : "[drive]:\inetpub\Odyssey\ODY.exe" /GUI -ForceDBSet"ZSL"
executable         : ODY.exe
exec. date/time    : 2018-03-28 17:47
version            : 7.40.40.281
compiled with      : Delphi 10.2 Tokyo
madExcept version  : 4.0.19
callstack crc      : $bbe1168b, $9de48cbc, $9de48cbc
exception number   : 1
exception class    : EAccessViolation
exception message  : Access violation at address 016DD745 in module 'ODY.exe'. Read of address 0000001A.

thread $39b4 (TInThreadWithTask):
016dd745 +059 ODY.exe      untMain            1033   +5 TiwfrmMain.iwcgjqvrtmnMainMenuJQVertMenuOptionsClick
00db3617 +11b ODY.exe      IWCGJQControl                TIWCGCustomRegion.CallEvent
00db2da9 +091 ODY.exe      IWCGJQControl                TIWCGCustomRegion.DoAjaxRequest
00b90fc7 +067 ODY.exe      IWApplication      2445   +9 TIWCallback.PerformCallBack
00b90d82 +04e ODY.exe      IWApplication      2405   +8 TIWCallBacks.PerformCallBack
00b8b8d7 +02f ODY.exe      IWApplication       544   +3 TIWApplication.PerformCallBack
00b85f6c +270 ODY.exe      IWForm             1119  +63 TIWForm.DoExecuteForm
00b941e6 +066 ODY.exe      IWBaseForm          381   +9 TIWBaseForm.ExecuteForm
00b8ddd0 +138 ODY.exe      IWApplication      1279  +37 TIWApplication.ExecuteActiveForm
00b8da95 +031 ODY.exe      IWApplication      1159   +3 TIWApplication.ProcessForm
00c93a9e +02a ODY.exe      IWServerSession     288   +4 TIWServerSession.ExecuteCallback
00c95e33 +1e7 ODY.exe      IWServerSession     727  +37 TIWServerSession.DoExecuteSession
00c962b1 +1c5 ODY.exe      IWServerSession     810  +44 TIWServerSession.ExecuteSession
00c86214 +3a4 ODY.exe      IWServer            538  +63 TIWServer.ExecuteUrl
00c86720 +0e0 ODY.exe      IWServer            608  +11 TIWServer.Execute
00c92c63 +027 ODY.exe      IWServerSession      88   +2 HttpExecute
00cb2a8a +1ba ODY.exe      IW.Server.HTTPIndy  235  +26 THTTPServerIndy.DoCommandGet
00c81367 +6cb ODY.exe      InCustomHTTPServer 1426 +180 TInCustomHTTPServer.DoExecute
00c56e6f +00f ODY.exe      InContext           185   +2 TInContext.Run
00c55a0a +002 ODY.exe      InTask              136   +0 TInTask.DoRun
00c6d586 +006 ODY.exe      InThread            625   +1 TInThreadWithTask.Run
00c6cf31 +0f5 ODY.exe      InThread            377  +43 TInThread.Execute
00c1ecbf +02b ODY.exe      madExcept                    HookedTThreadExecute
008d0fd9 +049 ODY.exe      System.Classes               ThreadProc
0080c714 +028 ODY.exe      System              282   +0 ThreadWrapper
00c1eba5 +00d ODY.exe      madExcept                    CallThreadProcSafe
00c1ec0a +032 ODY.exe      madExcept                    ThreadExceptFrame
76778652 +022 KERNEL32.DLL                              BaseThreadInitThunk
>> created by thread $141c (TIdListenerThread) at:
00c6d132 +052 ODY.exe      InThread            448  +24 TInThread.Create

main thread ($1cb8):
00000000 +ff42c6b8 ODY.exe madStackTrace +0 StackAddrToStr
>> stack will be calculated soon


Help please....

TIA
zsleo
 
Posts: 776
Joined: 03 Feb 2013 03:33

by Alexander Bulei » 28 Mar 2018 10:33

Hi zsleo,

I've checked here, and works as expeceted.

Can you send me the simple testcase, which will reproduce that?

Best Regards.
Group: Developers | Support Team

  • info [at] cgdevtools.com - General information
  • sales [at] cgdevtools.com - Sales department
  • support [at] cgdevtools.com - Product and Technical Support
User avatar
Alexander Bulei
Site Admin
 
Posts: 3635
Joined: 15 May 2012 08:52
Location: Mealhada, Portugal

Next

Return to JQVertMenu

cron

Who is online

Users browsing this forum: No registered users and 1 guest

Contact Us.