The MSE IDE is a Cross Platform GUI Development System completely written in Pascal for Pascal programmers. Despite being a single person (Martin Schreiber) effort for the moment, the IDE has already an amazing feature list. More info and downloads are available on the home page MSEide+MSEgui
But what about Lazarus ?
Lazarus is an IDE that aims to provide a high degree of compatibility with VCL code while providing a native look on many platforms. The native look is very important for many developers, but combined with the VCL compatibility necessitates many comlex interfaces to the different native widget sets (Gtk,Win32,Carbon,Qt). The continuous evolution of these native widget sets (gtk1->gtk2, win32->?, qt) provokes endless catching up. The MSE GUI does not feature (or does not suffer :-) VCL compatibility. The graphics library provides an interface to win32 and X11. The advantage of the X11 layer is the immediate availability of a large and stable (in time) target platform. The different goals of both projects make that both projects fulfill different needs.
Why this wiki
The design of the MSE GUI is a fresh approach to GUI design patterns. It features many innovative solutions for typical GUI tasks. Being innovative, the MSE GUI library differs substantially from VCL/LCL/CLX. Switching from VCL to MSE may be more challenging than switching from VCL to LCL. These wiki pages aim to ease the first steps with this promising IDE and GUI library.
See home page.
Launch the IDE and use Project->Open to open the provide demo msegui/apps/demo/demo.prj. The title of the IDE reflects the opened project. Hit F9 and (if you followed the installation instructions :-), be amazed by the speed of FPC+MSE.
First RAD steps
Close the running project. Use Project->Source to open the project source demo.pas. Ctrl-click on the parameter mainfo in the line
to navigate to main.pas. Click on F12 to toggle between unit and form. Not everything will feel that familiar, because of that, these pages are written. Click on the button, this will auto raise the property editor (unusual but usefull). Let us add another button. Make the component palette visible if necessary (View->Toolbar->Component Palette). Select the tbutton on the widget page. Click on the form to create the button. Give it a caption in the usual way. Creating an event handler does not work with the usual double clicking on the onexecute property. Instead, you must select the onexecute property in the property editor, type the name of an event handler and press enter. The MSE RAD will create the handler and position the pointer on the definition. Use ctrl-shift-down arrow (or up) to navigate between implementation and definition. Just add some code like writeln('Hello world'); Hit F9. The writeln will end up in the target console window of MSE (not the console in which you started MSE).
Adding a Main Menu
Add Main Menu
Add a tmainmenu component from the Widget Component tab to your main form. Click on your mainform (mainfo) so that the Object Inspector show the properties of the mainform. Use the arrow next to the mainmenu property of the mainform, to select tmainmenu1 as the mainmenu of mainfo.
Add Menu Items
In the object inspector click on the cross to open the mainmenu treeview branch. Open the menu property of mainmenu. Change the submenu.count of menu to 1 (or higher). Now open the submenu.count property, it will show "Item 0" and "Item 1". Open these items and set their caption properties respectively to "Open" and "Quit".
Some may find the standard menu font a bit small. The standard font for the main menu of an msegui application is the font defined by the stf_menu stock font. You can change a stock font value with a startup parameter.
So if you start the mseide like this, you can get a larger font: