GithubHelp home page GithubHelp logo

a740g / inform-pe Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 3.0 70.23 MB

A GUI engine and WYSIWYG interface designer for QB64-PE

Home Page: https://qb64phoenix.com/forum/showthread.php?tid=1756

License: MIT License

FreeBasic 4.62% Visual Basic 6.0 7.72% Shell 0.21% Batchfile 0.17% BASIC 87.03% Makefile 0.25%
basic-programming gui gui-designer library qb64 qb64-pe qbasic quickbasic quickbasic64 wysiwyg

inform-pe's Introduction

INFORM-PE

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

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

<some-drive-or-directory>
    |
    |-------<InForm-PE>
    |           |
    |           |-------<UiEditor[.exe]>
    |
    |-------<QB64pe>
                |
                |-------<qb64pe[.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_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.

InForm/InForm.bi
InForm/InForm.ui
InForm/InFormCommon.bi
InForm/InFormVersion.bi
InForm/xp.uitheme
InForm/extensions/*.*

EXAMPLES

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

NOTES

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

inform-pe's People

Contributors

a740g avatar fellippeheitor avatar georgemcginn avatar headape avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

inform-pe's Issues

Unusually high startup durations for InForm based apps

Applications utilizing the InForm GUI, including UiEditor, exhibit unusually prolonged startup durations. On my system with a Ryzen 5600x processor, the InForm Calculator example takes approximately 3 seconds to initiate. There is room for enhancement in this regard.

Upon initial analysis, it appears that the sluggish performance is linked to __UI_LoadThemeImage() and the storage mechanism within __UI_ImageData(). Optimizing these functions is expected to result in improved startup times.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.