Does someone want to update some old Xojo code to the latest Mac version?

I’ve got a little app that I first created for a client in 2000 (!), updated in 2013, and haven’t touched since. It’s a very straightforward Mac app that lets you type out a crossword grid in a single window, then save the file in a text format.

The code base is old enough (and I’ve forgotten enough) that I don’t know if I’ll be able to update in a timely fashion myself, so are there people here with experience enough to do it for me for a fee? It would probably require the eye of someone who’s been using Xojo long enough to be able to read that old code decently. It started as REALBasic code after all.

Most of the analysis problems involve drawing directly on the canvas for the crossword grid rather than using the paint event. I’ve gotten it to draw the grid, but when it comes to things like having the text appear, clicking in a box to type a letter, and navigate to the next box using the tab, I still can’t get that to work. Everything else is replacing deprecated terms with their current ones (Length for Len, etc.)

its maybe better to write this tool new with the old code base as help.

2 Likes

Some of my applications have been originally developed by a friend using RealBasic (before 2000) and I still update them. I did it continually, sometimes without open projects during one year. It’s true it will be more difficult after many years but still possible without too big work.
I do it in my spare time and I have 14 projects (applications). The biggest work for me was to replace the App.DoEvents by Threads and Timers, and the API2 update.

1 Like

I suggest that you focus on the fact that you can’t access Graphics from outside the Paint event any more. Basically you’ll need to store what you need to update and call Invalidate to get the Paint Event to fire.

The good news is that you may be able to just put all that drawing code into individual methods and pass the Graphics object into each method to refactor.

Let’s say you had a method called UpdateLetters() in which you directly access Canvas1.Graphics. What you need to do is add a parameter to the method, let’s say g as Graphics, and then in the code you replace Canvas1.Graphics with g. Now instead of calling the method from wherever, you only call it from the Paint event, passing in the Graphics context you are supplied.

As far as the language depreciations go, for the most part, any of the ones that have replacements don’t need to be replaced immediately. Each one actually needs to be looked at, especially strings because now they use indexes instead of positions. But again, there’s really no urgency. The old framework isn’t going away any time soon.

3 Likes

If you’re looking for someone who offers this kind of thing as a service, it is one of my specialties. I have been upgrading RealBasic/Studio projects to Xojo for years professionally.

You can find a little more information on my website https://xojoconsulting.com and of course, reach out by email with more details. I’d be happy to help you get your project operating on the latest systems.

4 Likes

That everyone for the offers to help. Unfortunately, my client said they’re not comfortable with someone else looking at the code, so I’m just going to have to do it myself and take my time. :frowning:

There’s really nothing secretive or unique about the code, so I’m mystified at their response and it honestly feels a bit paranoid, but that’s how it is, I guess. :man_shrugging:

2 Likes

Perhaps this will help with updating your graphics code:

https://documentation.xojo.com/topics/graphics/updating_code_that_used_the_graphics_property.html

1 Like

Thanks!