Clarion 11.1.13744 and NoMerge Toolbars not displaying in Frame

Tags: #<Tag:0x00007fc0dac0ea70>

I have an application that has a toolbar with some buttons and using the Clarion 11.1 claRun.dll, the window with a toolbar is displayed but the toolbar is not displayed. Has anyone else seen this problem and know a workaround?

Bill A

does the toolbar have a USE(?ToolBarUsevariable)?

Might help if you posted the code for the WINDOW declaration line and TOOLBAR with controls. Also a screenshot of the Window in Designer, and of a window preview.

In the Main procedure, the window looks like this

> AppFrame APPLICATION('Register Start Up Application'),AT(,,450,266),FONT('Segoe UI',10,,FONT:regular), |
>           DOUBLE,AUTO,CENTER,ICON('WAFRAME.ICO'),IMM,MASK,STATUS(110,-1,120,45),TIMER(1000)
>           TOOLBAR,AT(0,0,450,47),USE(?TOOLBAR1),#ORDINAL(1)
>             BUTTON('Start Register'),AT(3,2,62,41),USE(?btnMainF02),KEY(F2Key),ICON('F02.ico'), |
>               DISABLE,#ORDINAL(2)
>             BUTTON,AT(66,2,62,41),USE(?btnMainF03),KEY(F3Key),DISABLE,#ORDINAL(3)
>             BUTTON('Clock In/Out'),AT(130,2,62,41),USE(?btnMainF04),KEY(F4Key),ICON('F04.ico'), |
>               DISABLE,#ORDINAL(4)
>             BUTTON,AT(193,2,62,41),USE(?btnMainF05),KEY(F5Key),DISABLE,#ORDINAL(5)
>             BUTTON('DT Menu'),AT(257,2,62,41),USE(?btnMainF06),KEY(F6Key),ICON('F06.ico'), |
>               DISABLE,#ORDINAL(6)
>             BUTTON,AT(320,2,62,41),USE(?btnMainF07),KEY(F7Key),DISABLE,#ORDINAL(7)
>             BUTTON('Close'),AT(383,2,62,41),USE(?btnMainF10),KEY(F10Key),ICON('F10.ico'),DISABLE, |
>               #ORDINAL(8)
>           END
>         END

In the RegStartup procedure the window looks like this, it is this toolbar that does not display

RegStartUpWin WINDOW,AT(,,458,221),FONT('Segoe UI',10,,FONT:regular),MAXIMIZE,AUTO,GRAY,MDI, |
          TIMER(100),WALLPAPER('back.jpg')
          TOOLBAR,AT(0,0,458,47),USE(?TOOLBAR1),NOMERGE,#ORDINAL(1)
            BUTTON('Start Register'),AT(3,2,62,41),USE(?btnStartReg),KEY(F2Key),ICON('F02.ico'), |
              #ORDINAL(2)
            BUTTON,AT(66,2,62,41),USE(?btnF03),KEY(F3Key),DISABLE,#ORDINAL(3)
            BUTTON('Clock In/Out'),AT(130,2,62,41),USE(?btnClock),KEY(F4Key),ICON('F04.ico'), |
              #ORDINAL(4)
            BUTTON('Force Pin Pad Update'),AT(193,2,62,41),USE(?btnF05),KEY(F5Key),ICON('F05.ICO'), |
              #ORDINAL(5)
            BUTTON('DT Menu'),AT(257,2,62,41),USE(?btnDTMenu),KEY(F6Key),ICON('F06.ico'),#ORDINAL(6)
            BUTTON('Assign Pin Pad'),AT(320,2,62,41),USE(?btnAssignPinPad),KEY(F7Key),ICON('F07.ICO'), |
              #ORDINAL(7)
            BUTTON('Close'),AT(385,2,62,41),USE(?btnClose),KEY(F10Key),ICON('F10.ico'),#ORDINAL(8)
          END
          IMAGE('PointOfSale01.png'),AT(8,9,86,81),USE(?IMAGE1),#ORDINAL(9)
          STRING('Please LEAVE THIS REGISTER ON for updates'),AT(142,21),USE(?STRING1),FONT('Segoe UI Semibold', |
            14,,FONT:bold+FONT:underline),TRN,#ORDINAL(10)
          STRING(@s40),AT(124,48,257),USE(LOC:RegisterString1),FONT('Segoe UI Semibold',14, |
            ,FONT:bold),CENTER,TRN,#ORDINAL(11)
          STRING(@s60),AT(60,68,386),USE(LOC:RegisterString2),FONT('Segoe UI',14,COLOR:Maroon, |
            FONT:bold),CENTER,TRN,#ORDINAL(12)
          STRING('If you need to access the time clock press F4'),AT(143,93),USE(?STRING6), |
            FONT('Segoe UI Semibold',14,,FONT:bold),TRN,#ORDINAL(13)
          PANEL,AT(7,158,440,51),USE(?PANEL1),BEVEL(2,-4),#ORDINAL(14)
          STRING(@s60),AT(37,167,381),USE(LOC:OpenEPSString),FONT('Segoe UI',10),CENTER,TRN, |
            #ORDINAL(15)
          STRING(@s60),AT(37,179,381),USE(LOC:StartUpString),FONT('Segoe UI',10),CENTER,TRN, |
            #ORDINAL(16)
          STRING(@s60),AT(37,192,381),USE(LOC:RebootString),FONT('Segoe UI',10),CENTER,TRN, |
            #ORDINAL(17)
          IMAGE('DB_Connected.ico'),AT(417,136,30,24),USE(?DatabaseImage),#ORDINAL(18)
          BUTTON,AT(470,4),USE(?BUTTON1),FLAT,SKIP,TRN,#ORDINAL(19)
        END

I could not get the Windows Previewer to work, here is what the window looks like inside the designer

Like I was trying to say earlier, the toolbar shows up using the Clarion 11.0 runtime and it does not using the Clarion 11.1 runtime.

I am wondering if doing this fix, broke something.

FIX: If a control is CREATEd in the active MDI child window’s toolbar, its view in the Frame might not be refreshed

Bill A

`

I found a workaround, to get the toolbar to display.
By creating a SillyWindow and Open/Close that window in the OpenWindow event of the RegStartup window, forces the RegStartup to redisplay with the Toolbar showing the correct buttons.

SillyWindow   WINDOW('SillyWindow...'),AT(,,200,56),CENTER,MDI,GRAY
              END

OF EVENT:OpenWindow
  ! Start of "Window Event Handling"
  ! [Priority 1300]
  ! WEA - 07/21/2021 - SillyWindow is needed to make the Toolbar to display
  OPEN(SillyWindow)
  CLOSE(SillyWindow)
  ! WEA - 07/21/2021
1 Like

This should be noted in the docs because I’m afraid it will never fixed.

Interesting. I wonder if InvalidateRect() would do the same thing.

along with “save often”

Bill, If you haven’t reported this to SV support, I definitely recommend it.
I think the odds are pretty good that SV will look at it, if they just broke it.