Silverfrost Forums

Welcome to our forums

Property sheet - hot_action effect

9 Jan 2016 12:49 #17123

Paul, When using the %ps function with a callback, the [hot_action] option prevents the callback. Ian

10 Jan 2016 10:32 #17124

My FTN95.CHM calls this 'hot_track'...

10 Jan 2016 1:58 #17125

Oops, I meant [hot_track], must have been a Freudian slip! Ian

11 Jan 2016 7:06 #17126

Thank you. I have made a note of this.

20 Jan 2016 12:21 #17144

John, I'll check that when I get home. Ian

20 Jan 2016 10:54 #17147

Here is a summary of the effects:

resources
1  24   default.manifest

included or not included, [hot_track] option not specified

Result - selecting tab actions the assigned callback.

[hot_track] option specified
Callback not used, highlighting of tab text does not work

default.manifest not included [hot_action] OR callback works, not both.

Ian

21 Jan 2016 9:09 #17148

Using a manifest has the effect of binding the application to version 6.0 of the Microsoft DLL Comctl32.dll (or at least that is how it was at the beginning). See https://msdn.microsoft.com/en-us/library/aa289524(v=vs.71).aspx.

So maybe ClearWin+ will have no control over this effect. However I will leave this as something to be investigated.

All of this relates to 32 bit Windows. I am guessing that 64 bit Windows uses only one version of Comctl32.dll. The answer may be here.. https://msdn.microsoft.com/en-gb/library/windows/desktop/hh298349(v=vs.85).aspx

(Sorry about the incomplete URLs).

25 Jan 2016 4:46 #17157

I actually gave up, and found a way of advancing from input window to input window, plus doing it in any order or even backtacking.

We must surely all have a list offormat code effects we like, and those we can't get on with: %ps, %lv and %bv are my least favourites, along with %dw.

25 Jan 2016 8:34 #17159

Thanks for trying this, but like Eddie, I have given up using the [hot_track] option as it is purely cosmetic whereas the callback is a necessity. Regards Ian

1 Jun 2016 3:27 #17534

I have had a look at this and I can confirm that the callback response is different depending on whether or not hot_track is used. At the moment I don't know how to fix this so it remains a limitation. So for the time being %^ps[hot_track] is not a useful combination.

6 Jun 2016 6:08 #17552

This has now been fixed for the next release. Hopefully you will be able to everything as documented. Here is my test program.

!FTN95$WINAPP
!------------------------------------------------------------------
    module psdata
      integer g1,g2,col1,col2,n,sheetn
    end module psdata
!------------------------------------------------------------------
    program ps
      use clrwin
      use psdata
      integer,external::redraw1,redraw2,cb,cb1,cb2
      integer i,wh1,wh2
      g1=1
      g2=2
      col1=1
      col2=1
      sheetn=1
      n=0
! *** Define the first property sheet %sh with embedded graphics 
      i=winio@('%sh%sc%ca[Window &1]&',wh1,redraw1)
      i=winio@('%`gr%ta%nl%ta %7^bt[Redraw]',200,200,g1,redraw1)
! *** Next property sheet
      i=winio@('%sh%sc%ca[Window &2]&',wh2,redraw2)
      i=winio@('%`gr%ta%nl%ta %7^bt[Redraw]',200,200,g2,redraw2)
! *** Now display the combined sheets
      i=winio@('%ca[Property sheet]%^`2ps[hot_track]&',wh1,wh2,sheetn,cb)
      i=winio@('%ac[Ctrl+A]&',cb1);
      i=winio@('%ac[Ctrl+B]&',cb2);
      i=winio@('  %6rd&',n)
      i=winio@('%2nl%ta%8^bt[Exit]','EXIT')
    end
!----------------------------------------------------------------------
    integer function redraw1()
      use clrwin
      use psdata
      integer i
      i=select_graphics_object@(g1)
      do i=0,200
        call draw_line_between@(0,i,200,i,col1)
        col1=col1+1
        if (col1>=255) col1=0
      end do
      redraw1=1
    end
!-----------------------------------------------------------------------
    integer function redraw2()
      use clrwin
      use psdata
      integer i
      i=select_graphics_object@(g2)
      do i=0,200
        call draw_line_between@(i,0,i,200,col2)
        col2=col2+4
        if (col2>=255) col2=0
      end do
      redraw2=1
    end
!-----------------------------------------------------------------------
    integer function cb()
    use psdata
    n = n+1
    cb = 1
    end    
!-----------------------------------------------------------------------
    integer function cb1()
    use psdata
    use clrwin
    sheetn = 2
    call SEE_PROPERTYSHEET_PAGE@(sheetn)
    cb1 = 2
    end    
!-----------------------------------------------------------------------
    integer function cb2()
    use psdata
    use clrwin
    sheetn = 1
    call SEE_PROPERTYSHEET_PAGE@(sheetn)
    cb2 = 2
    end    
6 Jun 2016 8:49 #17557

I tested under Windows 8.1 and primarily the callback was not being called when an [ms_style] was used. The failure may not occur on other versions of Windows. You can use the above sample to check this out.

I don't have any information about the date of the next release at the moment.

Please login to reply.