Thursday, October 24, 2013

Creating Irie Pascal 3 October 2013


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.

14 comments:

  1. So, does this mean that, from the user's perspective, Irie Pascal 3 will be more "C" coding than Pascal?

    ReplyDelete
    Replies
    1. Oops, 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.

      Delete
  2. Hi,

    Will the new version be backward compatible with existing Irie Pascal source codes?

    ReplyDelete
    Replies
    1. 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).

      Delete
  3. Merry Christmas.

    Hope to see something in the New Year :-)

    ReplyDelete
    Replies
    1. Merry Christmas to you too. I'm hoping to see something in the New Year too.

      Delete
  4. Hi Stuart,

    Hope you had a great Christmas & New Year.

    Is there a Jan update please?

    ReplyDelete
    Replies
    1. Thank you, my Christmas and New Year were fine.

      Well, 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).

      Delete
  5. That's great news. Many thanks for the update :-)



    ReplyDelete
  6. Yes. Keep up the good work.

    ReplyDelete
  7. Hi,

    Are there any more updates please?

    Thanks :-)

    ReplyDelete
  8. Hi,

    Is there a progress report on the new version?

    ReplyDelete
    Replies
    1. Hi, I should have a progress report ready very soon.

      Delete