Over the last few builds (alpha 3-5), there have been a number of new features that have been added to OpenDCL 5. Here is a quick recap if you haven’t been keeping up. Remember these new functions are still an Alpha work in progress, so make a backup before converting your existing projects. (Click on the thumbnail images below to see an enlarged version of them. Some are short videos showing the new stuff in action)
- Palette forms are now available.
- Here you’ll see how to insert the palette in the editor.
- Most controls have a new Drag & Drop framework that allows them to handle the Drag & Drop events without any Lisp code at all.
- Most controls now have a transparent background.
- Now you can import an image with a transparent background into a picture box. Set the background color of the image to 192,192,192, then set the picture box background to transparent.
- A new delay function has been added: (dcl_DelayedInvoke <delay as integer> <command-name as string>). This function executes a command after a set period of time (specified in milliseconds). If the command name starts with “c:”, it will call the lisp function with that name. It also runs in the background, so you can keep working in Acad while the timer is still running. Unlike (command “.DELAY”) where it freezes Acad & waits until the timer is done. This can be used for things like splash screens or other time-controlled activities, maybe a file system watcher or a chat application.
- Check boxes now support three states, and their ‘Value’ property is no longer a boolean, but an integer (0 = Unchecked, 1 = Checked, 2 = Indeterminate). Therefore, if you had code that checked whether a check box was checked via (if (dcl_Control_GetValue <control>) …), you’ll need to change this to (if (= 1 (dcl_Control_GetValue <control>)) …)