It’s been a while since Thinfinity VirtualUI was first released. During these months, we have corresponded heavily with our users, who have presented us with all sorts of enquiries.
We include here some of the Thinfinity VirtualUI questions we have received, in the hopes that they can be useful for other users. Some of this feedback has been used for polishing our documentation or has turned into other blog entries. Some of our user’s questions have even played a key role in enhancing VirtualUI, providing us with insights on how to develop a product that better fits our users’ needs.
We would like to thank all of our users who work with us, sending their suggestions and inquiries, and also encourage those who are evaluating our product to contact us if they need any kind of assistance with their deployment.
Q: “I’m using Delphi and I would like to keep the app single-source. Is there any way to make it so that the app does not start in web mode during development? Can I add a switch so that it runs as a desktop application, and only runs in web mode when it is started from a browser?”
A: If you want to run the application in desktop mode from Delphi, you just have to run the application without debugging.
But if you need to debug the application in desktop mode, you’ll have to comment the VirtualUI_Autorun unit reference.
Q: “After an app is added to the development server manager, I am not sure how to make it start from the browser. Or is this not possible during development testing?”
A: Yes, it’s possible.
In order to start the application from the browser, you will have to run it in debug mode from the development environment and call it from the browser using the Virtual Path value defined for the application, following this format:
http[s]://<myVirtualUIServerURL>/<Virtual Path value>/
Q: “Users will be accessing my application from multiple devices with different screen sizes. Is it possible to detect what the screen size is at the start of the session and then adjust accordingly? And is it possible to run the application maximized in the browser window, even if this means scaling up?”
A: You can do it from your application using the BrowserInfo property of the VirtualUI class.
Also you can use the “Fit to browser” resolution mode and take advantage of the new Enhanced Browser and Device DPI support.
Q: “On a mobile device, VirtualUI is positioning a cursor that you have to drag around, and the click event occurs where the cursor is, instead of occurring in the coordinates where the finger tap was done. Is it possible to use absolute positioning and don’t show the cursor?”
A: Web enabled applications bear more similarities with desktop than mobile applications in terms of touch behavior. By default, Thinfinity VirtualUI transforms touch gestures into relative mouse position coordinates in order to replicate the way a touchpad works. However, if you prefer the classic mobile absolute positioning look and feel, you can enable it modifying the VirtualUI cursor behavior by code:
virtualui.ClientSettings.MouseMoveGestureStyle := MM_STYLE_ABSOLUTE; virtualui.ClientSettings.MouseMoveGestureAction := MM_ACTION_WHEEL; virtualui.ClientSettings.CursorVisible := FALSE;
Setting the above lines in the application code hides the cursor and enables the “like mobile” touch mode.