Theres been a lot of work going on over the past year and a bit in terms of GUI plugins for KiXtart. The intent is to provide a VB like interface for the kixtart scripting langauge. One that is tailored specifically for kixtart - in that kixtart does not have native support for ActiveX Control Events (like vbs and js have) ... so with that in mind, we had to devise a way for kixtart to respond gracefully to GUI events and at the same time - not soak-up 100% CPU utilization in the process.

But first, a digression, the history of the plugins goes a bit like this:

1. kixwin32.dll - a very crude event polling snapin (by yours truly)

2. kixbgi32.dll - a much better, event polling snapin whose interface is based on the Borland Graphics Standard (BGI). This plugin made it all the way to build 18 before development work stopped. cj and Jochen helped the development of BGI immensely and wrote some VERY awesome scripts in the process.

3. kixforms.dll - a gui snapin with a vb like interface. The intent there was to conform (as much as possible) to VB style programming of visual controls ... this eases the learning curve in that if one has VB programming experience, kixforms would be a snap(in) ...

4. kixwinvb.dll - this is Alex`s implementation of kixwin32 but evolved more along the lines of visual basic. Actually, Alex and I started developing these snapins about the same time.

But here`s the real deal. I orginally developed an event strategy whereby one would assign a code string to an object event property and then perform an event loop and use kixtart`s wonderful execute() function, like this:


$button.onclick = "button_click()" ; assign event to event property


while $form.visible
$=execute($form.getevent()) ; execute event properties as they happen
loop


function button_click ; here`s an event
?"hi there"
endfunction


then about the time kixforms build 3 rolled around. i decided to switch the event strategy and use a polling techique instead, like this:



while $form.getevent
if $button.onclick()
?"hi there"
endif
loop


I personally feel that the polling technique has merit and is much more in-tune with the way KiXtart functions. And that is the way I left things in Build 4. Right now, kixforms is at Build 6 and about 80% percent done (from a functionality stand-point). So like Alex, I`d like to make KIXFORMS.DLL BUILD 4 available for the boards evaluation. Plus, they`re real fun to play with !!!

You can get KIXFORMS from here:

KixForms

to install kixforms, just unpack the zip into a directory and run the command:

regsvr32 kixforms.dll

then just run the sample scripts.

KIXFORMS is written entirely in Visual C++ so there are no dependencies what-so-ever. But more importantly, it is still under development and is missing certain key controls. So have a look and try it out, and if any problems feel free to post.

Anyways, I hoping that by making kixforms available now, and by showing some more sample scripts (abeit kixforms script) this will only help Alex`s efforts to get folks using these snapins. But the big thing that i would like to get the boards thoughts on is which event strategy is easiest, most intuitive, best for long-term, etc ...

Looking forward to feedback

-Shawn