Fork 0
mirror of https://github.com/FellippeHeitor/InForm.git synced 2024-07-21 11:15:13 +00:00
2024-01-11 05:36:34 +05:30

4.4 KiB


InForm logo

InForm-PE is a GUI engine and WYSIWYG interface designer for QB64-PE. It is a fork of InForm, authored by Fellippe Heitor.

InForm-PE's main goal is to generate event-driven QB64-PE applications. This means that you design a graphical user interface with interactive controls and then write the code to respond to such controls once they are manipulated.

Wiki: https://github.com/a740g/InForm-PE/wiki


  • WYSIWYG interface designer
  • Event-driven application design
  • Works on Windows, Linux & macOS
  • Everything is statically linked (no shared library dependencies)


Install InForm-PE and QB64-PE side-by-side in their own directories. There is no need to copy InForm-PE files to the QB64-PE directory.

The following directory setup is recommended

    |           |
    |           |-------<UiEditor[.exe]>

Assuming your setup is like the above, do the following:

  • Open Terminal and change to the InForm-PE directory using an appropriate OS command
  • Run setup_inform_lnx.sh, setup_inform_osx.command or setup_inform_win.cmd depending on the OS you are on. This will run make with the correct parameters. If the build fails, ensure QB64-PE is installed in the QB64pe directory (next to the InForm-PE directory). If QB64-PE is installed elsewhere, then edit the setup scripts to change the location
  • Once InForm-PE is compiled, you will find the UiEditor[.exe] executable in the InForm-PE directory
  • Run UiEditor[.exe] to start designing your forms
  • After your form looks the way you want it to, click File > Save to export its contents and generate a .bas source file. Two files are exported:
    • .frm - the generated form in QB64-PE code. This can be loaded back into InForm-PE's designer or manually edited in QB64-PE or any text editor later, if you want to adjust fine details
    • .bas - the actual program you will add your code to

You add code to respond to events.

  • Click
  • MouseEnter/MouseLeave (hover)
  • FocusIn/FocusOut
  • MouseDown/MouseUp (events preceding a Click)
  • KeyPress
  • TextChanged (for text box controls)
  • ValueChanged (for track bars, lists and dropdown lists)

There are also events that occur in specific moments, to which you can respond/add code.

  • BeforeInit, triggered just before the form is shown.
  • OnLoad, triggered right after the form is first shown.
  • BeforeUpdateDisplay, triggered every time the form is about to be repainted.
  • BeforeUnload, triggered when the user tries to close the program, either via clicking the window's X button, right click in the task bar -> Close or with Alt+F4 (Windows only).
  • FormResized, triggered when a form with the CanResize property is resized at runtime.

IMPORTANT: The following files must be copied to your project directory for it to compile.



Name Author
Bin2Include Zachary Spriggs
Calculator Terry Ritchie
ClickTheVoid Fellippe Heitor
ClockPatience Richard Notley
DuckShoot Richard Notley
ebacCalculator George McGinn
Fahrenheit-Celsius Richard Notley
Fireworks2 Fellippe Heitor
GIFPlaySample Fellippe Heitor
GravitationSimulation Richard Notley
InFormPaint Fellippe Heitor
InsideOutsideTriangle Richard Notley
Lander1 B+
Lander2 B+
Mahjong Richard Notley
MasterMindGuessTheSequence TempodiBasic
Pelmanism Richard Notley
PictureGrid Richard Notley
PlayFX Samuel Gomes
RockPaperScissorsSpockLizard TempodiBasic
Stopwatch Fellippe Heitor
TextFetch B+
ThemePreview Fellippe Heitor
TicTacToe Fellippe Heitor
TicTacToe2 Fellippe Heitor
Trackword Richard Notley
WordClock Fellippe Heitor
wordSearch George McGinn


  • This requires the latest version of QB64-PE. QB64, or other forks of QB64 will not work!