From RB to Xojo: Canvas, printing & HiDPI / Retina?

Hi all,

I’m trying again to move to Xojo from my main work horse RS2012 R2.1.

With I used to have a property myPic and a draw method that drew into myPic.

In the canvas paint event I would then simply draw the picture.

Printing was equally easy.

Is that still the way to do it with Xojo or what has changed?



Why don’t you open your project in Xojo and see for yourself? Your question is far to general to have a good answer.

If you want to support Retina then your drawing may have to change. And of course there is my most beloved ThreadAccessingUIException, which you will surely encounter.

I have opened it in Xojo and the canvas looks slightly fuzzy, therefore my question.

I don’t think it is too general as I’m after the big picture, an overview on how you approach drawing and printing when both normal resolution and high DPI screens need to be considered.

I previously searched the forums and looked at a lot of threads, as well as the Xojo blog, but while there is a lot of information (often for very specific situations) there isn’t a “this is how you should approach it” posting that I can find.

Dumb question, but would explain the fuzziness: Did you enable the HiDPI switch in build settings?

If you draw the picture elsewhere and then display it on a canvas you need to draw it @2x and scale it down in the Paint event. That is how you should approach it.

Additionally, you’re no longer supposed to access a canvas’ graphics object outside of the Paint event. So if you change something on the canvas from an external source you no longer do it directly, change a property for the Paint event to handle as appropriate.

Other than that, try it for yourself and come back with questions.

I do that, but I do not understand. I may not be alone in that case !