ezsdx - a small frontend for sdx


ezSDX - Simplifies SDX Usage v0.98b was written by Zipguy on 2013/10/05 - <Web Site> .

You can click on the My Tcl Desktop link, in my home page, to see ezSDX on it.

It was written to run only on Windows! Sorry for all you others on non-Windoze machines. I only have Windoze on my machines.

I love windows, and hate it. I've attempted to make an easy version, for Windows people, which will include SDX and make it as easy to use as possible. I use tcl to make my life a little easier, on Windows.

I wish I had a nickel for each time I've clicked on the 'Wrap & Run' button.

EasySDX v0.98f Alpha

I've got a newer version, which is alpha, but it does have a collapsible frame for the console menu. It is here <ezsdxv98f.kit> . It is a major improvement because it gets rid of the two window problem! Those windows were the application's and console windows.

EasySDX employs the Changing stdout, redefining puts and avoiding console show method, to solve this issue. It does look something like this:


Now it has colors also, in the new 'console' window. You can see more about it at [L1 ].

If you look closer, you may have noticed that I've also moved the buttons from the bottom, to the middle of the screen. Also it has a new 'Options' menu, that doesn't do anything yet. Go ahead and try it.

Once I get it working properly, then I'll release it as a Beta, and will have to modify my screenshots, on this page, sigh. You can see what's going on with this alpha, at the bottom of the page, which you can get to by clicking on the link to 'Zipguys Updates' above.

EasySDX v0.98b



This program was written to make it a lot easier to run myprog.tcl, convert it to a starkit, myprog.kit, or even to an exe, myprog.exe. It does try to prevent people, who may be ignorant, from doing stupid things.


It can:

  • Run xxx.tcl programs
  • QWrap/Unwrap xxx.tcl programs
  • Makes it easy to re-generate your xxx.kit file
  • Can even make xxx.exe

A little more explanation

ezSDX makes it easy to convert it into a starkit, namely myprog.kit. You can make small changes to your source code, save them in your editor, and click on the"Wrap & Run" button, here in ezSDX, to re-wrap myprog.kit, and re-run myprog.kit. ezSDX makes it extremly easy to "Wrap & Run" the starkit, myprog.kit, many, many, times.

Also, once you've got the starkit, myprog.kit, working well, you can use ezSDX to create myprog.exe from the starkit myprog.kit, and you can use ezSDX to run, the freshly produced myprog.exe, from ezSDX. It does use "tclkit-8.6.0-runwin32.upx.exe" to make the program into an executable, namely, myprog.exe.

That will make it what's called a Starpack, which is good and bad.

  • The good news, it's an executable. It will run.
  • The bad news, it will only run on the operating system that you're on.

In other words if you're on Windows, you have someone download it to a Apple machine and run it, it will fail almost every single time.

It does use "tclkit-8.6.0-runwin32.upx.exe" to run the program, which I found at <Pat Thoyts's Daily Build site> . It is interesting that the date on the file was "21-Dec-2012 09:45" and the file size is 1.4M.

This release, 8.6.0, is also available (now) on <ActiveState's Site> , but that is a LOT larger, approximately 26meg.

How do I download what I need and How do I set up an Icon to run EasySDX?

You've got two choices.

  • Download EasySDX v0.98b which is an .exe file.
  • Download a couple of files to set up an icon

It's your choice. You should follow similar directions to create an Icon for running ezsdx.exe.

This is how you do the later choice, in a step by step mode.

First, after you've downloaded <ezsdxv98b.kit> , and either made a folder for it, or saved into a folder you already have, where you edit xxxx.tcl files.

Second, you'll need tclkit to run it, as you're probably aware. You can download tclkit from <Pat Thoyts's Daily Build site> . I'd recommend using

Third to get an Icon to run it on Windows,

  • Right click on a part of your desktop that is empty
  • Select from the menu that comes up: New -> Shortcut
  • Pick the tclkit file that you've downloaded on the wizard screen that comes up
  • Put a space in, and then the file like "D:\dl\dcl\mls\ezsdxv98b.kit", and click on the "Next" button
  • Rename it to "EasySDX 8.6.0", and click on the "Finish" button
  • Right=Click on the Icon you've just created, and select "Properties" on the menu that pops up

and you should see something like the screen below:


If it does look like that, that's good! Click on the "Ok" button. Then double-click on the icon to run it.

If it works, you should see something like the screen below, if it works.


If it does, congratulations, you're now running EasySDX.

If it doesn't work, try repeating those steps to create an Icon, a little more slowly, unless you see a screen like this:


Which means it did work so proceed ahead (after you've moved the console screen out of the way a little).

Can I use it just to run a .tcl file?

Yes you can! You could edit a TCL file (myprog.tcl) in any Editor you like, even the trivial notepad program.

When you've just started ezSDX, you should see something like the screen above, if you've got it working. You may have to rearrange it a little bit to look like that (I'd recommend that). So next, you should find myprog.tcl, or in my case, gif2base64.tcl, by using the "File:" button. You may want to look at "Can you give me an Example of converting a .tcl into a .kit?" in the table of contents at the top.

If you've done that, you should see this screen:


You should notice the buttons "Run", "QWrap", "Unwrap", "Console" and "Exit" buttons.

The button you'll be interested in in the "Run" button, for now.

If you've made some changes, to your source code, in your editor, what you should do is:

  • save it in the Editor, and then
  • click on the "Run" button, here in ezSDX, to run it.

One editor, that would be better, is one that understands TCL, as ML does. Web Site: http://www.geocities.ws/thezipguy . You can click on the My Tcl Desktop link to see ML v1.25 on it as well.

Can I Convert myprog.tcl into a Starkit?

Yes, you can. Assuming you have been using ezSDX to run myprog.tcl, to convert it to a starkit you should Click on the buttons in this order:

  • "Console" button. This will open up the Console
  • "Qwrap" button. This will quick wrap it up using SDX. Also ezSDX will change the file from myprog.tcl to myprog.kit
  • "Unwrap" button. Look in the console to make sure it works.

If you've done that, you should see the buttons have changed a lot! You used to have only the 5 buttons before. Now you should have 8 buttons.

Now you should see the buttons "Wrap & Run", "Wrap", "Run", "Unwrap", "Make .exe", "Run .exe", "Console" and "Exit" buttons, more on what they do later.

What you should do is close the Editor you're using, and re-open the Editor on myprog.tcl, which was written in the sub-folder \myprog-vfs\lib\app-myprog,

In any case, ezSDX will make it extremly easy to "Wrap & Run" myprog.kit many times. If your Editor understands starkits, like ML does, you may be able to run it without wrapping it first.

What just happened? Why do I have to edit another copy of my program?

What happenned is that you "Qwrap"'ed it and "Unwrap"'ed it. Those two operations created a second copy of that program, slightly modified, in a folder named \myprog-vfs\lib\app-myprog which would be named the same as it was, in other words myprog.tcl. That means that you've converted it to a starkit makeable file, along with some other files, under that \myprog-vfs subdirectory it just created for you. That means that the editor session that may be open on myprog.tcl, should no longer be used! What you should do is open the file myprog.tcl, under the folder called \myprog-vfs\lib\app-myprog. It has changed only one line, namely:

  package provide app-myprog 1.0

for you. Just leave it alone, and continue to make changes, to your hearts delight. When you want to try the changes you've made, hit the save option in your editor, and use ezSDX to do that for you. All you have to do is hit the "Wrap & Run" button.

All you have to do is go back to the ezSDX window, and click on the "Wrap & Run" button. I hope you understand this well.

Can you give me an Example of converting a .tcl into a .kit?

Sure, let me give you and example. I'll start with a .tcl program, show you why you might need to make it a starkit, get it working properly, and how to turn it into a Starpack, namely a .exe program.

I downloaded the program from the page Creating image photo data from GIF files. I named it gif2base64.tcl. So, I hit the file button in ezSDX to pick it, like this:


Then I was presented with a Windows File Dialog which looked like this:


What I had to do was change the field "Files of type: " to "TCL Scripts (*.tcl)", pick the file called gif2base64.tcl, and click on the "Ok" button. When I did that I got a screen that looked like this:


This meant that the console window was in front of the main window, so I had to click on the main window, which looked like this:


Then I had to click on the "Run" button, which took a second or two, an then I saw this:


That looked terrific, because the program called gif2base64.tcl, was actually running on my laptop. Hooray! So I had to navigate to the folder, which contained .gif files in it, like this:


When I clicked on "Ok" it looked like this:


So, I picked the file I wanted to see (at the bottom) by double clicking on it, but YIKES, I had an error!


Then I clicked on the "Details..." button and saw this error message:


What was the problem?

Well to explain what happenned is first, I did succeed and got the program running, but it did encounter an error. It was complaining that "::base64::encode" was an invalid command. Why did it complain about that?

That was because if you look in the console, you'll see what ezSDX is using to run the program. That would be "exec D:\dl\dcl\mine\tclkit-8.6.0-runwin32.upx.exe D:\dl\dcl\mine\icons\gif2base64.tcl &". That means it is using "tclkit-8.6.0-runwin32.upx.exe" to run the program. I found that at <Pat Thoyts's Daily Build site> .

It does not have all of the commands that are included in ActiveStates full blown version, which is a lot larger, like 26Meg, while zipped. tclkit-8.6.0-runwin32.upx.exe is around 1.6Meg, and it is missing the command called ::base64::encode which is part of tcllib. Actually it is a subfolder of the Tcl folder I have installed, by ActiveState, also. I don't use it that much, because ezSDX is a lot faster. But, that is what is causing that error.

So what did I do?

I converted gif2base64.tcl to a starkit, and copied that subfolder, base64, under the gif2base64.vfs\lib. It did have a pkgIndex.tcl, which I thought would work, and it did. You should see the page on that also, A Simple Multi-File Starkit Example. Which is good in most things, but bad at the bottom.

Would you explain what you did to convert it to a gif2base64.kit

Sure. I followed the instructions above by hitting the "Qwrap" button. It looked like this:


Then I saw this message in response to hitting the "Qwrap" button:


I clicked the "Ok" button, clicked back on the ezSDX main window, and saw how much the ezSDX window had changed, Wow.


Look at more of those buttons! Notice how it has changed the file to gif2base64.kit from gif2base64.tcl. What you should do is hit the "Unwrap" button, and it will look like this:


It trying to tell you that what you should do is close your Editor, or just re-open the file gif2base64.tcl, but in a different folder, in this case /gif2base64.vfs/lib/app-gif2base64.

Also, what it's trying to tell you is that you should look in the "Console" window and check it. What you should do is remember to scroll it to the bottom, and it should look like this:


So all I have to do is try it, by hitting the "Wrap & Run" button, and it should look just like the screen when we hit the "Run" button above, but now we're running the kit file, namely gif2base64.kit:


So, what I had to do was copy the base64 folder under the /gif2base64.vfs/lib folder. Then I hit the "Wrap & Run" button, and it did work right.

Then I kept editting it, adding a menu, a toolbar, and some other things. It was good to add them one at a time, then hit the save button, and then hit the "Wrap & Run" button, to test it as I went. I just wish I had a nickel for each time I pushed that button. Anyway, this is what I wound up with:


I've got the old icons from ML 1.20 and got viewicons.tcl and all their icons from http://www.satisoft.com/tcltk/icons/viewIcons.html . Also, I've got some icons using my improved version of gif2base64.kit from the page Creating image photo data from GIF files.


So what do you think of ezsdx?

Does anyone like it? Or Hate it?

Should I rename it to EasySDX?

Any opinions?

Any bugs?

tjk I just downloaded the code and had a hard time getting it to work because it apparently doesn't like spaces in the directory path. As soon as I put it in a location that didn't have spaces in the directory (i.e. folder) names it started.

Zipguys Updates

Zipguy 03/2012 - I'm currently working on ezsdx.kit which is refreshing my knowledge which was rusty all over.

I love windows, and hate it. It will make an easy version for Windows people which will include SDX and make it easy to use. When all you have is a great.tcl, want to convert it to a kit (great.kit), unwrap it, Wrap it back up, or even better be able to Wrap & Run so you can test it.

Zipguy 2013/10/05 - You can click on the Zipguy link to get my email address.

I've been using ezSDX for about 18 months, and it has come along nicely! It tries to watch out, for someone who's a rookie, or sleepy, and has made a mistake. It does seem relatively bullet proof, and almost ready for an initial release (close, but not quite).

Zipguy 2013/10/10 - I just upgraded it from EasySDX v0.98a to EasySDX v0.98b.

Zipguy 2014/05/19 - I just upgraded it from EasySDX v0.98b to EasySDX v0.98f. It is much better, but still has some bugs in it, but not many. I will have to add a few more features to it (like a scrollable size controller for the 'psuedo-console' window), and upgrade the icons for it, if I can find a better way to do it. I'm looking into CollapsableFrame -A Toggle Resized Labelled Frame Container, which I like, but dilike the icons. I have a better version of it, with nicer icons, which looks like this:


but I'm concerned that it only uses the place command, not grid nor pack.