empty icon group

Post Reply
AntoninoP
Posts: 347
Joined: Tue Feb 10, 2015 9:48 am
Location: Albenga, Italy
Contact:

empty icon group

Post by AntoninoP »

Hello,
In our program, in a particular occasion, there is an empty icon group.
In this case the class crashes when the user press any key.

Code: Select all

Application
===========
   Path and name: C:\Pos\TLPosWin.exe (32 bits)
   Size: ********* bytes
   Compiler version: Harbour 3.2.0dev (r1412151448)
   FiveWin  Version: FWH 15.03
   Windows version: 6.1, Build 7601 Service Pack 1

   Time from start: 0 hours 0 mins 16 secs 
   Error occurred at: 27/03/15, 18:01:04
   Error description: Error BASE/1132  Limiti superati: accesso all'array
   Args:
     [   1] = A   { ... } length: 0
     [   2] = N   0

Stack Calls
===========
   Called from:  => ARRAY:__OPARRAYINDEX( 0 )
   Called from: .\source\classes\IGROUP.PRG => TICONGROUP:KEYDOWN( 867 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\CONTROL.PRG => TICONGROUP:HANDLEEVENT( 1733 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3355 )
   Called from:  => DIALOGBOX( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 287 )
   Called from: TLPosWin.prg => TODOLIST( 2508 )
   Called from: TLPosWin.prg => (b)COOLBAR_VARIE( 3902 )
   Called from: btnbmp.prg => TBTNBMP:CLICK( 608 )
   Called from: btnbmp.prg => TBTNBMP:LBUTTONUP( 823 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1723 )
   Called from: btnbmp.prg => TBTNBMP:HANDLEEVENT( 1620 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3355 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 1057 )
   Called from: TLPosWin.prg => MAIN( 841 )

System
======
   CPU type: Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz -2147483648 Mhz
   Hardware memory: 4095 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 7
      1 ,                                                                                                     
      2 , C:\Pos\TLPosWin.exe                                                                                 
      3 , C:\Pos\freeimage.dll                                                                                
      4 , C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e697 
      5 , C:\Windows\syswow64\SHLWAPI.dll                                                                     
      6 DDE Server Window, C:\Windows\syswow64\ole32.dll                                                                       
      7 GDI+ Window, C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.18455_none_72d576ad8665e8 

Variables in use
================
   Procedure     Type   Value
   ==========================
   ARRAY:__OPARRAYINDEX
     Param   1:    O    Class: ERROR
   TICONGROUP:KEYDOWN
     Param   1:    N    0
     Local   1:    U    
     Local   2:    U    
   TWINDOW:HANDLEEVENT
     Param   1:    N    27
     Param   2:    N    65537
     Local   1:    O    Class: TICONGROUP
     Local   2:    N    0
     Local   3:    N    0
     Local   4:    U    
     Local   5:    A    Len:    0
     Local   6:    N    0
   TICONGROUP:HANDLEEVENT
     Param   1:    N    256
     Param   2:    N    27
     Param   3:    N    65537
   _FWH
     Param   1:    N    256
     Param   2:    N    27
     Param   3:    N    65537
     Local   1:    U    
   DIALOGBOX
     Param   1:    N    65537
     Param   2:    N    256
     Param   3:    N    27
     Param   4:    N    65537
     Param   5:    N    37
     Local   1:    O    Class: TICONGROUP
   TDIALOG:ACTIVATE
     Param   1:    N    1310720
     Param   2:    C    "DLG_TODO"
     Param   3:    N    1255060
     Param   4:    O    Class: TDIALOG
   TODOLIST
     Param   1:    U    
     Param   2:    U    
     Param   3:    U    
     Param   4:    L    .F.
     Param   5:    B    {|| ... }
     Param   6:    L    .T.
     Param   7:    B    {|| ... }
     Param   8:    U    
     Param   9:    U    
     Param  10:    L    .F.
     Param  11:    L    .F.
     Local   1:    N    1255060
     Local   2:    S    
     Local   3:    O    Class: TDIALOG
   (b)COOLBAR_VARIE
     Param   1:    A    Len:   25
     Param   2:    L    .T.
     Local   1:    O    Class: TDIALOG
     Local   2:    O    Class: TMULTIGET
     Local   3:    O    Class: TICONGROUP
     Local   4:    O    Class: TSPLITTER
     Local   5:    O    Class: TSPLITTER
     Local   6:    O    Class: TSPLITTER
     Local   7:    O    Class: TXBROWSE
     Local   8:    C    ""
     Local   9:    A    Len:    0
     Local  10:    A    Len:    0
     Local  11:    A    Len:    1
     Local  12:    A    Len:    0
     Local  13:    A    Len:    0
     Local  14:    A    Len:    8
     Local  15:    N    9
     Local  16:    O    Class: TGRAPH
     Local  17:    A    Len:   12
     Local  18:    A    Len:    5
     Local  19:    N    0
     Local  20:    O    Class: TFONT
   TBTNBMP:CLICK
     Param   1:    O    Class: TBTNBMP
   TBTNBMP:LBUTTONUP
   TCONTROL:HANDLEEVENT
     Param   1:    N    32
     Param   2:    N    35
     Param   3:    N    0
     Local   1:    L    .T.
     Local   2:    S    
   TBTNBMP:HANDLEEVENT
     Param   1:    N    514
     Param   2:    N    0
     Param   3:    N    2097187
     Local   1:    U    
   _FWH
     Param   1:    N    514
     Param   2:    N    0
     Param   3:    N    2097187
   WINRUN
     Param   1:    N    2097187
     Param   2:    N    514
     Param   3:    N    0
     Param   4:    N    2097187
     Param   5:    N    19
     Local   1:    O    Class: TBTNBMP
   TWINDOW:ACTIVATE
     Param   1:    N    1255060
   MAIN
     Param   1:    C    "MAXIMIZED"
     Param   2:    U    
     Param   3:    B    {|| ... }
     Param   4:    U    
     Param   5:    B    {|| ... }
     Param   6:    U    
     Param   7:    U    
     Param   8:    B    {|| ... }
     Param   9:    U    
     Param  10:    U    
     Param  11:    U    
     Param  12:    U    
     Param  13:    U    
     Param  14:    U    
     Param  15:    U    
     Param  16:    U    
     Param  17:    B    {|| ... }
     Param  18:    U    
     Param  19:    U    
     Param  20:    L    .F.
     Local   1:    O    Class: TWINDOW
     Local   2:    U    
     Local   3:    U    

---CUT---
If I add a control here, it crashes on VK_RETURN:

Code: Select all

Application
===========
   Path and name: C:\Pos\TLPosWin.exe (32 bits)
   Size: ********* bytes
   Compiler version: Harbour 3.2.0dev (r1412151448)
   FiveWin  Version: FWH 15.03
   Windows version: 6.1, Build 7601 Service Pack 1

   Time from start: 0 hours 0 mins 33 secs 
   Error occurred at: 27/03/15, 18:10:00
   Error description: Error BASE/1132  Limiti superati: accesso all'array
   Args:
     [   1] = A   { ... } length: 0
     [   2] = N   0

Stack Calls
===========
   Called from:  => ARRAY:__OPARRAYINDEX( 0 )
   Called from: igroup.prg => TICONGROUP:KEYDOWN( 895 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\CONTROL.PRG => TICONGROUP:HANDLEEVENT( 1733 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3355 )
   Called from:  => DIALOGBOX( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 287 )
   Called from: TLPosWin.prg => TODOLIST( 2508 )
   Called from: TLPosWin.prg => (b)COOLBAR_VARIE( 3902 )
   Called from: btnbmp.prg => TBTNBMP:CLICK( 608 )
   Called from: btnbmp.prg => TBTNBMP:LBUTTONUP( 823 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1723 )
   Called from: btnbmp.prg => TBTNBMP:HANDLEEVENT( 1620 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3355 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 1057 )
   Called from: TLPosWin.prg => MAIN( 841 )

System
======
   CPU type: Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz 75 Mhz
   Hardware memory: 4095 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 7
      1 ,                                                                                                     
      2 , C:\Pos\TLPosWin.exe                                                                                 
      3 , C:\Pos\freeimage.dll                                                                                
      4 , C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e697 
      5 , C:\Windows\syswow64\SHLWAPI.dll                                                                     
      6 DDE Server Window, C:\Windows\syswow64\ole32.dll                                                                       
      7 GDI+ Window, C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.18455_none_72d576ad8665e8 

Variables in use
================
   Procedure     Type   Value
   ==========================
   ARRAY:__OPARRAYINDEX
     Param   1:    O    Class: ERROR
   TICONGROUP:KEYDOWN
     Param   1:    N    0
     Local   1:    U    
     Local   2:    U    
   TWINDOW:HANDLEEVENT
     Param   1:    N    13
     Param   2:    N    1835009
     Local   1:    O    Class: TICONGROUP
     Local   2:    N    0
     Local   3:    N    0
     Local   4:    C    ""
     Local   5:    S    
     Local   6:    A    Len:    0
     Local   7:    N    0
   TICONGROUP:HANDLEEVENT
     Param   1:    N    256
     Param   2:    N    13
     Param   3:    N    1835009
   _FWH
     Param   1:    N    256
     Param   2:    N    13
     Param   3:    N    1835009
     Local   1:    U    
   DIALOGBOX
     Param   1:    N    1835009
     Param   2:    N    256
     Param   3:    N    13
     Param   4:    N    1835009
     Param   5:    N    37
     Local   1:    O    Class: TICONGROUP
   TDIALOG:ACTIVATE
     Param   1:    N    14024704
     Param   2:    C    "DLG_TODO"
     Param   3:    N    1517418
     Param   4:    O    Class: TDIALOG
   TODOLIST
     Param   1:    U    
     Param   2:    U    
     Param   3:    U    
     Param   4:    L    .F.
     Param   5:    B    {|| ... }
     Param   6:    L    .T.
     Param   7:    B    {|| ... }
     Param   8:    U    
     Param   9:    U    
     Param  10:    L    .F.
     Param  11:    L    .F.
     Local   1:    N    1517418
     Local   2:    S    
     Local   3:    O    Class: TDIALOG
   (b)COOLBAR_VARIE
     Param   1:    A    Len:   25
     Param   2:    L    .T.
     Local   1:    O    Class: TDIALOG
     Local   2:    O    Class: TMULTIGET
     Local   3:    O    Class: TICONGROUP
     Local   4:    O    Class: TSPLITTER
     Local   5:    O    Class: TSPLITTER
     Local   6:    O    Class: TSPLITTER
     Local   7:    O    Class: TXBROWSE
     Local   8:    C    ""
     Local   9:    A    Len:    0
     Local  10:    A    Len:    0
     Local  11:    A    Len:    1
     Local  12:    A    Len:    0
     Local  13:    A    Len:    0
     Local  14:    A    Len:    8
     Local  15:    N    9
     Local  16:    O    Class: TGRAPH
     Local  17:    A    Len:   12
     Local  18:    A    Len:    5
     Local  19:    N    0
     Local  20:    O    Class: TFONT
   TBTNBMP:CLICK
     Param   1:    O    Class: TBTNBMP
   TBTNBMP:LBUTTONUP
   TCONTROL:HANDLEEVENT
     Param   1:    N    19
     Param   2:    N    16
     Param   3:    N    0
     Local   1:    L    .T.
     Local   2:    S    
   TBTNBMP:HANDLEEVENT
     Param   1:    N    514
     Param   2:    N    0
     Param   3:    N    1245200
     Local   1:    U    
   _FWH
     Param   1:    N    514
     Param   2:    N    0
     Param   3:    N    1245200
   WINRUN
     Param   1:    N    1245200
     Param   2:    N    514
     Param   3:    N    0
     Param   4:    N    1245200
     Param   5:    N    19
     Local   1:    O    Class: TBTNBMP
   TWINDOW:ACTIVATE
     Param   1:    N    1517418
   MAIN
     Param   1:    C    "MAXIMIZED"
     Param   2:    U    
     Param   3:    B    {|| ... }
     Param   4:    U    
     Param   5:    B    {|| ... }
     Param   6:    U    
     Param   7:    U    
     Param   8:    B    {|| ... }
     Param   9:    U    
     Param  10:    U    
     Param  11:    U    
     Param  12:    U    
     Param  13:    U    
     Param  14:    U    
     Param  15:    U    
     Param  16:    U    
     Param  17:    B    {|| ... }
     Param  18:    U    
     Param  19:    U    
     Param  20:    L    .F.
     Local   1:    O    Class: TWINDOW
     Local   2:    U    
     Local   3:    U    
---CUT---
Regards,
Antonino Perricone
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: empty icon group

Post by Antonio Linares »

Antonino,

Try this:

Code: Select all

METHOD KeyDown( nKey, nFlags ) CLASS TIconGroup

   local nAt := ::nFocused
   local nLen := Len( ::aIcons )

   local cPrompt := ::aPrompts[ Min( nAt, Len( ::aPrompts ) ) ]  // here!
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply