I guess we have to have more information to confirm if this is really a bug in ProcessBook, Like if this is repeatable or whether you are able to reproduce this in some environment or steps.
For a start, can you confirm that the button that is giving the issue is a Button symbol in ProcessBook and not a Microsoft Form command button (which can be inserted into ProcessBook as a control). They may look similar but if it is a command button, then you will not see a change in mouse pointer when you mouse over it.
I confirm that I'm using the correct PI button.
I didn't suceed to reproduce the issue. It's happen some times.
How could I automatically reprocess de mousseOver Handler ?
What is the version of your PI ProcessBook? Are you using VBA code behind to change the cursor? If you create a new button, what would be the behavior? What happens if you create a new display and add a new button?
I have tried unsuccessfully to simulate your problem.
You can change the cursor of the mouse in a PI ProcessBook display through the property ThisDisplay.MousePointer.
Let me know if you still have any question,
I've as well tried it without succeeding. It's easy with Microsoft Forms Controls but not trivial with a pbButton. I am really curious what this turns out to be in the end.
I finally got it !
I'm also using Layers and the issue is a ProcessBook issue between fordward/backward symbols and the use of Layers.
Let me explain you how to reproduce the issue :
3 layers : named Layer1/Layer2/Layer3 with the index number correspond to his name.
Insert a rectangle named rectangle2Before.
Assign rectangle2Before to layer2.
Insert 2 buttons named button1/button3.
Assign to this button the layer1 for the button named button1 and layer3 for the button3.
Insert a rectangle named rectangle2After.
Assign Rectangle2After to layer2.
Superimpose the rectangles over buttons.
Due to layers button1 is visible on the background.
Due to layers rectangle2Before and rectangle2After are visible on the middleground.
Due to layers button2 is visible on the front.
Despite the visible aspect that is work fine, the mouseover don't react the same over the Rectangle2Before than the Rectangle2After.
Over the Rectangle2Before and a button the mouse over is changing on the "right hand index finger up".
Over the Rectangle2After and a button the mouse over is NOT changing on the "right hand index finger up".
So my conclusion is that modified arrangement by sending symbols to background or bring to front is not working fine with the use of layers.
New symbols added are always added as the frontest symbol, despite that visually the new symbol is send to back by the use of layers the mousse changing over button is played like the button was at the back of this new symbol.
Let me know if there is the same issue on your processbook.
nb : ProcessBook version 184.108.40.206
Thank you for writing a procedure about how to reproduce the issue. I was able to reproduce it and I have found out a workaround to solve this problem.
The workaround consists in adding two events handlers (MouseOut and MouseOver) to the rectangle2After and Button3 objects, as you can see on the code snippet below:
Private Sub Button3_MouseOut() ThisDisplay.MousePointer = pbMPDefault End Sub Private Sub Button3_MouseOver() ThisDisplay.MousePointer = pbMPCustom End Sub Private Sub rectangle2After_MouseOut() ThisDisplay.MousePointer = pbMPDefault End Sub Private Sub rectangle2After_MouseOver() ThisDisplay.MousePointer = pbMPDefault End Sub
You will have to use custom pointers since the cursor of the "right hand index finger up" is not listed on the options of ThisDisplay.MousePointer.
Here is the code snippet to use the custom pointers:
ThisDisplay.MousePointer = pbMPCustom Set ThisDisplay.MouseIcon = LoadPicture("C:\temp\hand.cur", , , Default)
You can replace the cursor file with any of your choice. Generally, system cursor files are stored under %Windir%\Cursors. I recommend you using the standard .cur file.