Posted an updated example project for how to make platform http error codes generic AND platform specific 😛
Showing a file in Windows Explorer
No. Not IE.
// there are issues with this style
// 1. you can only select one file
// 2. If folder is already opened, it doesn't select the file
Declare Function ShellExecuteW lib "shell32" (hwnd as Integer, lpOperation as WString, lpFile as WString, lpParameters as WString, lpDirectory as Integer, nShowCmnd as Integer) as Integer
Dim err as Integer
Dim param As String
param = "/select, """ + f.AbsolutePath
… Read the rest Showing a file in the Finder
This has probably been posted in the forums. Its just not always easy to find.
Declare Function NSClassFromString Lib "Cocoa" (name As CFStringRef) As Ptr
Declare Function sharedWorkspace Lib "AppKit" selector "sharedWorkspace" ( obj As ptr ) As ptr
Declare Function selectFile Lib "AppKit" selector "selectFile:inFileViewerRootedAtPath:" ( obj As ptr, fPath As CFStringRef, rootFullPath As CFStringRef ) As Boolean
Dim workspace As ptr = sharedWorkspace( NSClassFromString( "NSWorkspace" ) )
Call selectFile( workspace, f.NativePath,
… Read the rest Debugging tip
Sometime when you’re debugging your application you run into a situation where you get funky behaviour.
You might do something like Javier mentioned in his recent blog post on Xojo’s blog :
Dim ASource() As Integer = Array(1,2,3,4,5,6,7,8)
Dim ATarget() As Integer
ATarget = ASource
And, as he noted, you cant figure out why when you change one array you also appear to alter the other.… Read the rest
What scope should this be ?
This question isnt asked that often. But I think it should be.
When you create classes, modules, layouts or anything else in Xojo you should make everything as private as it needs to be. And no more. And as public as it needs to be. And no more.
But exactly what does that mean ?
I would say that you should normally start with most things in classes being protected.… Read the rest
Error handling speed
A question I was asked recently posed an interesting question about exceptions and the cost of using them as a general error handling mechanism.
Xojo uses whats know as “zero cost exception handling”. Essentially at runtime there is no penalty for having exception handling in place. It imposes no runtime overhead when NO exceptions are encountered.… Read the rest
More good habits
On the forum there was a suggestion that a person should use a container control that had a few controls embedded in it at design time. And then when using that container control that they should skip providing an API that the container presented and just reach inside the container and manipulate the controls it contain directly.… Read the rest
Of bounds and positions
Windows have two sets of properties that all relate to positioning a window.
However, they are not all quite created equally.
There are, of course, the typical top, left, width and height properties. And also the “bounds” property which is a Rect.
If you examine the bounds property for a Document window, and the top, left, width and height you will find that the Bounds.top… Read the rest
Generics
One of the things that Xojo lacks is the notion of generics.
So what are these things and why would they be useful ?
In many programming languages you might want to define a class that behaves like a List. But you want to be able to make this generic enough that when you go to use one you can make a List of Strings, a List of Classes, a List of controls etc.… Read the rest
Good habits when creating custom controls
Suppose you have the need to create a custom control like I did recently
One of the things that you should do so people do not get confused about using your control is to “implement” any events in whatever you use as your base class that should not be exposed to end users of your control.… Read the rest