https://github.com/a740g/inform-pe
A GUI engine and WYSIWYG interface designer for QB64-PE
https://github.com/a740g/inform-pe
basic-programming gui gui-designer inform inform-pe library qb64 qb64-pe qbasic quickbasic quickbasic64 wysiwyg
Last synced: about 2 months ago
JSON representation
A GUI engine and WYSIWYG interface designer for QB64-PE
- Host: GitHub
- URL: https://github.com/a740g/inform-pe
- Owner: a740g
- License: mit
- Created: 2023-05-07T23:02:52.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2025-02-23T21:21:22.000Z (3 months ago)
- Last Synced: 2025-02-23T22:25:55.449Z (3 months ago)
- Topics: basic-programming, gui, gui-designer, inform, inform-pe, library, qb64, qb64-pe, qbasic, quickbasic, quickbasic64, wysiwyg
- Language: QuickBASIC
- Homepage: https://qb64phoenix.com/forum/showthread.php?tid=1756
- Size: 68.7 MB
- Stars: 13
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# INFORM-PE

[InForm-PE](https://github.com/a740g/InForm-PE) is a GUI engine and WYSIWYG interface designer for [QB64-PE](https://www.qb64phoenix.com/). It is a fork of [InForm](https://github.com/FellippeHeitor/InForm), authored by [Fellippe Heitor](https://github.com/FellippeHeitor).
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:
## FEATURES
- WYSIWYG interface designer
- Event-driven application design
- Works on Windows, Linux & macOS
- Everything is statically linked (no shared library dependencies)## USAGE
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
```text
|
|-------
| |
| |-------
|
|-------
|
|-------
```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_mac.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.***
```text
InForm/InForm.bi
InForm/InForm.ui
InForm/InFormCommon.bi
InForm/InFormVersion.bi
InForm/xp.uitheme
InForm/extensions/*.*
```## EXAMPLES
| Name | Author |
|------|-------------|
| Bin2Include | Zachary Spriggs |
| Bubble-Universe | Samuel Gomes |
| 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 |
| R2P | bobalooie |
| 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 |## NOTES
- This requires the latest version of [QB64-PE](https://github.com/QB64-Phoenix-Edition/QB64pe/releases/latest). QB64, or other forks of QB64 will not work!