This is just a short progress report on how the next release of Irie Pascal is coming along.
Support for creating Windows applications with graphical user interfaces (GUIs) is THE new feature planned for Irie Pascal 3. I've been building a library (called StrongLib) to make it simple and easy to build GUI applications. When StrongLib is completed I'll integrate it into Irie Pascal.
So far, StrongLib can be used to create windows (and window classes), menus, and keyboard accelerators (also called keyboard shortcuts). The next step will be to add support for creating controls in the windows (like buttons, labels, list boxes, etc).
Below is a screen shot of a little application I built using StrongLib.
Below is the C code for the application.
#include <stronglib.h>
static STRONGLIB_APPINFO modAppInfo;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
int iExitCode;
ZeroMemory(&modAppInfo, sizeof modAppInfo);
modAppInfo.cbSize = sizeof modAppInfo;
modAppInfo.idAppName = STRONGLIB_TO_UCODE_NAMEID(MOD_UNICODE_NAME_APPNAME);
modAppInfo.idMainWnd = STRONGLIB_TO_UCODE_NAMEID(MOD_FRAMEWND_ID);
modAppInfo.pAppData = &modAppData;
StrongLibAppRun(&iExitCode, &modAppInfo, hInstance, szCmdLine, iCmdShow, NULL);
return iExitCode;
}
OK, I cheated a little bit. If you look closely you will see that some parts of the application are not defined. For example, the modAppData variable describes the application's GUI and would normally be filled in by Irie Pascal or by some other external application, but I haven't created anything to fill in modAppData yet, so the actual application has some extra code to initialize modAppData.
So, does this mean that, from the user's perspective, Irie Pascal 3 will be more "C" coding than Pascal?
ReplyDeleteOops, I just read over my post and I realize I was not very clear about this. No, just as currently Irie Pascal programs need the IrieRT26.dll library to run, the next release will need the StrongLib.dll library, but the user won't be directly exposed to the C code inside the library.
DeleteHi,
ReplyDeleteWill the new version be backward compatible with existing Irie Pascal source codes?
Yes, backward compatibility (source and binary) is a priority. I will probably need to add one or more new keywords, so any program that uses one of the new keywords as an identifier will need to be changed (by changing the identifier(s) that clash).
DeleteMerry Christmas.
ReplyDeleteHope to see something in the New Year :-)
Merry Christmas to you too. I'm hoping to see something in the New Year too.
DeleteHi Stuart,
ReplyDeleteHope you had a great Christmas & New Year.
Is there a Jan update please?
Thank you, my Christmas and New Year were fine.
DeleteWell, I'm still working on the library. Since my last update, I've added support for programming with TCP/IP sockets, URIs (more commonly called URLs), some very basic Unicode processing, and now I'm working on support for bitmaps. I haven't posted about this because I didn't think it was important/interesting enough (especially as the TCP/IP sockets, URIs, Unicode support might not make it into the upcoming release of Irie Pascal).
That's great news. Many thanks for the update :-)
ReplyDeleteYes. Keep up the good work.
ReplyDeleteHi,
ReplyDeleteAre there any more updates please?
Thanks :-)
Hi, sorry, no updates yet.
DeleteHi,
ReplyDeleteIs there a progress report on the new version?
Hi, I should have a progress report ready very soon.
Delete