In a different forum a user reminded me of a speed tip that had cropped up once or twice over the years. It has to do with popupmenus.
Basically on older versions of macOS if you did
PopupMenu1.ListIndex = -1
For i As Integer = 0 To 1000
This behaved not so badly although there is a slightly faster variation
But on Mojave this is noticeably slow.… Read the rest
Normally a listbox doesnt support much in the way of live resizing of rows or columns if you dont have a header row.
Turns out that for something else I’m working on I needed to be able to resize things and NOT have a header row – and also make it possible to resize rows as well by clicking & dragging.… Read the rest
If you’re a developer and work in light and dark modes and switch back and forth all the time this is a handy utility to grab.
It makes switching between the two modes fast and simple.
I know a lot of you don’t want to mess with Xcode BUT there are some really handy things it can help you with and you don’t have to write any Swift or Objective-C code.
Since you can drop a plist into Xojo to supplement or replace certain keys at some point you may need to create one.… Read the rest
Suppose you are creating a new container control to encapsulate some functionality onto this new control. You’re already thinking about “encapsulation” which is a good thing.
Why, when you create this new container, would you then make all the controls on it public so code outside the container can change it ? That seems like it would be a good way to ruin the encapsulation you’re trying to achieve.… Read the rest
Not for your children (although that is important too since kids can be incredibly harsh and will pick on kids with names that they think sound different or odd)
This is to do with naming methods, properties, and just about everything else in your Xojo projects.
A good name indicates a number of things to anyone who reads the code.… Read the rest
Sometimes its nice to be able to know what class defined a property or method. Introspection makes this mostly knowable.
The reason I say “mostly” is that something the introspection metadata does not tell you is if the property definition is local or inherited. So you cant tell for sure if a property in a subclass is one defined in the subclass or the inherited one from the superclass.… Read the rest
Shadowing is usually a bad thing. But you can “sort of” do it right as I explained previously. I say sort of because there are some gotcha’s – one of which I’ll explain here.
However, there are still gotcha’s that can’t be worked around. Some of them are because of how the Xojo framework does things.… Read the rest
Did you know that you can write, in the declaration pane for the method editor, the entire declaration and the editor will rip it apart for you ?
So instead of having type the name, tab, parameters, tab, return type, tab, select a scope you can type
Private Foo(i as integer) as string
and press tab or return and it will all get split into the right spots.… Read the rest
When you design classes you often make the properties they hold private or protected so outside code cant mess with the innards.
But what if you want to allow that – sometimes ?
This is the notion of a “friend”. Another class that you can literally say “yeah its ok I know them and it’s OK if they mess with my innards as they are my friend”.… Read the rest