Need Some Advice

I have an Win64 app that’s been deployed with customer for about a year. It’s a payment kiosk application running in 64-bit Win10 with a 42 inch touchscreen monitor, credit card terminal, bill acceptor, barcode reader, card dispenser, printer, and ultrasonic sensor to see when someone steps in front of it. The app starts up, we show a global floating window with nice graphics while we go through our initialization of the various pieces of hardware. Once that’s done it shows various PlainBox windows with graphics and videos. Then show various full-screen windows based on state and status of sensors.

It’s been working great for over a year. In 2018 R3 no issues either debugging or in built executables. In 2018 R4, however, things have gone off the rails. The initial global floating window shows normally, but when it gets to the Idle window it literally just disappears. It’s not closed and the app is still running because logging is still going on and the app thinks that things are still normal.

As I engage the ultrasonic sensor I can sometimes see the window flash on screen briefly. Then it disappears again. And again, logging in the app says things are working properly with the correct windows being put in place. This happens in debug and in built executables and has been verified by the client on multiple of their machines.

So I am at a loss to figure out what’s causing this issue. There is enough hardware involved where sending the app to Xojo would be pointless as it would never work in their environment.

So any ideas on what might be causing the issue with R4. I appreciate any and all serious ideas.

Check the size & positions of your windows. Are they still on the screen? Try pressing + followed by M to see if you can move the window.

First off, run this in the background and see if anything is taking focus away from your app

http://www.happydroid.com/focus

Ah the above is probably pointless if its working in 2018r3.

The only thing I can see from the 2018r4 release notes that could be related is a change to Screen() <https://xojo.com/issue/53050>.

Are you building for 32 or 64 bit?

Do you use any declares?

Figured it out. Something in the Window array or window handling changed in R4. Because in a kiosk you don’t want any flicker on the screen while a window was loading I was doing something like this (simplified):

[code]//Set the window to show in the right spot and make it visible
MyWidowToShow.top = 0
MyWidowToShow.left = 0
MyWidowToShow.Visible = true

//Make the rest of the videos invisible and move them offscreen
for i as integer = 1 to WindowCount-1 //note starting at index 1 to get windows behind
window(i).visible = false
window(i).top = -somelargenumber
window(i).left = -somelargenumber
next[/code]

In R3 this happily worked since MyWindowToShow became index 0 in the array immediately. In R4 this is not true. My visible window was NOT at index 0 and was one of a dozen other windows.

So my reliance on the visible window immediately coming to the front of the Window array worked in R3 but not R4. Very odd change but I’m glad I was able to power through it. Took some serious digging.

Thanks for the replies. Maybe this thread will help someone in the future.