Programming MUI

Posted by ALB42 on 21. Dezember 20162 Comments

When you program MUI with C you do not really program C but use many many macros to define the GUI. This macros not directly convert-able to Pascal but with some functions a close functionality is possible. ChainQ did already a start with a muihelper unit for MorphOS. I moved it to ami-extra, so make it available for all Amiga platforms. To test the muihelper implementation I started to convert the MUI 3.8 example codes to Pascal. At the Amiga FPC Wiki I created a comparison of the C Source and the resulting Pascal Source. To make it a little bit more difficult I create this sources at ABIv1 AROS 64bit. Many functions still need to be adjusted for 64bit.

The image shows the biggest MUI Demo C compiled (included in the MUI user archive on the left side) and the MUI Demo Pascal compiled (fresh compiled on the Amiga).
The Sources are placed at github.

2 comments to "Programming MUI"

  1. Looks totally amazing!
    You rock!

    Btw, i downloaded the vmware image, but i got into problems with it.

    1. Started a new project
    2. added a memo and a button
    2. double clicked the button, added „memo1.lines.text:=’bla bla bla‘;“
    3. saves the project
    4. imported your project xml build modes
    5. picked Amiga 68k
    6. compiled

    When i moved the folder to my amiga and start the binary, it first could not find TForm.. so it just says „Unable to find class TForm“.
    Ok, so i copied over the resource files, thinking maybe it needed them.
    But now it says „Cannot find class TButton“.

    I went back to VMware and noticed, that when you drop a TButton, its not added to the form-fields.. memo is, but not TButton.

    Might be worth taking a look at?

    Btw — love your work! Keep it up, especially 68k!!

    • ALB42 sagt:

      Hi Jon,

      Thanks for trying it.
      I tried exact the same as you describe and it work. (As Workaround you could just add the „Button1: TButton“ line by yourself to the code) I experienced such behavior from Lazarus when then Sources has error it fails sometimes to add GUI elements to the Source.

      Besides, yes you need to copy the *.fpcres file along with your m68k-amiga application. The Hunk format in Freepascal still does not support internal resources so it must keep in an extra file. (I guess I also wrote that in the readme)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert