Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
InForm-PE
@Kernelpanic
WOW how do you active that tutorial mode???
Is it a particular version of Inform_pe that you have downloaded?


[Image: immagine-2025-06-04-113959314.png]


[Image: Inform-Version.jpg]
Reply
@TempodiBasic, there isn't a tutorial mode. The message boxes you see were added to the code shared by @Kernelpanic in here: https://qb64phoenix.com/forum/showthread...3#pid23253

These messages are useful for understanding when events are triggered. If you prefer not to see the popups, you can remove or comment out the MessageBox lines in the code. 

@Kernelpanic, I highly recommend using the latest versions of InForm-PE (from the first post) and QB64-PE 4.1.0+ for the best experience.
Reply
Okay, I've reinstalled. I install InForm independently of the QB64 folder; I prefer it that way. For this to work, however, the QB64pe folder needs to be copied into the directory containing InForm.

Everything works. Great work!

[Image: Ordner2025-06-05.jpg]

[Image: In-Form-kompiliert2025-06-05-025437.jpg]
Reply
@kernelpanic
The Inform-pe has chained .BI files so when you compile (or compile and run a project ) you need all the .BI files pack.
They are the same needed when I want shared a my app and the user want compile it on his machine without installing Inform-pe on it.
I dunno how huge or useful is the use of a generic path to add to the absolute path used into .BI files for example
in the project file there is for default these $include:
Code: (Select All)

': External modules: ---------------------------------------------------------------
'$Include:'InForm/InForm.bi'
'$Include:'InForm/xp.uitheme'
'$Include:'Myproject.frm'
while in Inform.Bi there is 
Code: (Select All)
'$include:'InformCommon.bi'
that is in the same folder of Inform.BI so IDE can find it easily
and in this last there are
Code: (Select All)

'$Include:'InFormVersion.bi'
'$Include:'extensions/HashTable.bi'
the first is in the same folder of InformCommon.bi and the second in the relative path "extensions/" starting from the folder of InformCommon.bi

a way to mantain this hierarchy and to make flexible the path of Inform is to add at the start of each relative path an absolute path taken from a file dialog box SetInformLibraryPath ...and SHARED it as a Global shared variable in the main module
for example  in Inform.BI
Code: (Select All)

': External modules: ---------------------------------------------------------------
'$Include: AbsolutePath$ + 'InForm/InForm.bi'
'$Include: AbsolutePath$ + 'InForm/xp.uitheme'
'$Include: AbsolutePath$ + 'Myproject.frm'

and in InformCommon.BI
Code: (Select All)

'$Include: AbsolutePath$ + 'InFormVersion.bi'
'$Include: AbsolutePath$ + 'extensions/HashTable.bi'
Reply
@TempodiBasic - Yes, it's a bit complicated, but I want to keep it separate from the QB64 program. The screenshot shows how the folder should be structured. The InForm folder must be copied into the folder where one store your projects. 
As I said, it's a bit complicated, but it works. All the necessary files are found.

[Image: In-Form-Aufbau.jpg]

Code: (Select All)

': This program uses
': InForm GUI engine for QB64-PE - v1.5.7
': Fellippe Heitor, (2016 - 2022) - @FellippeHeitor
': Samuel Gomes, (2023 - 2025) - @a740g
': https://github.com/a740g/InForm-PE
'-----------------------------------------------------------

': Controls' IDs: ------------------------------------------------------------------
Dim Shared txtErgebnis As Long
Dim Shared BerechnenBT As Long
Dim Shared numKolbenhub As Long
Dim Shared numDrehzahl As Long
Dim Shared DieKolbengeschwindigkeitBetraegtLB As Long
Dim Shared KolbenhLB As Long
Dim Shared MotordrehzahlBeiHoechstleistungLB As Long
Dim Shared Form1 As Long
Dim Shared BerechnungDerKolbengeschwindigkeitLB As Long

': External modules: ---------------------------------------------------------------
'$Include:'InForm/InForm.bi'
'$Include:'InForm/xp.uitheme'
'$Include:'Kolbengeschwindigkeit.frm'

': Event procedures: ---------------------------------------------------------------
Sub __UI_BeforeInit

End Sub

Sub __UI_OnLoad

End Sub

Sub __UI_BeforeUpdateDisplay
  'This event occurs at approximately 60 frames per second.
  'You can change the update frequency by calling SetFrameRate DesiredRate%

End Sub

Sub __UI_BeforeUnload
  'If you set __UI_UnloadSignal = False here you can
  'cancel the user's request to close.

End Sub

Sub __UI_Click (id As Long)
  Select Case id
    Case txtErgebnis

    Case BerechnenBT
Reply
yeah maybe it is simpler a copy of Inform into folder of work than an absolute path to add to that relative path into includes files...
Reply
I agree with @TempodiBasic - it's a cleaner approach and makes zipping and sharing much easier.

While I can't promise an ETA, I'm actively working on a solution where the UIEditor can optionally copy all required InForm runtime files to the form's location whenever the form is edited.
Reply
Hi
a new program in Informpe
Speed Bible

it shows how to 
  1. emulate a text editor in a Picturebox
  2. run external programs (Qb64pe compiler, .EXE compiled)
  3. link to a webpage 
  4. make responsive to specific event a control that natively is not responsive to that specific event.
Reply
I can't get any further here, just like last time. There's no error message, but no result either. I always get stuck with these input fields. And suddenly, an error message pops up saying the "Picture Box" is already in use. Could the master give me a tip? Thanks!

PS: What I really miss is being able to access the source code by clicking the "Calculate" button; that's how it works in VB.

Kolbengeschwindigkeit - InForm

Code: (Select All)

    Case cmdBeendenBT
      If Control(numKolbenhub).Value <> 0 Then
        Text(txtErgebnis) = __UI_StrUsing$("###.##", (((Control(2 * numKolbenhub).Value) * Control(numDrehzahl).Value) / 60 * 100))
      End If
      'Formel: kolbenges = (((2 * kolbenhub) * drehzahl) / (60 * 100))

Code: (Select All)

Dim Shared Form1 As Long
Dim Shared BerechnungDerKolbengeschwindigkeitLB As Long
Dim Shared KolbenhLB As Long
Dim Shared MotordrehzahlBeiHoechstleistungLB As Long
Dim Shared numKolbenhub As Long
Dim Shared numDrehzahl As Long
Dim Shared DieKolbengeschwindigkeitBetraegtLB As Long
Dim Shared txtErgebnis As Long
Dim Shared BerechnenBT As Long
Dim Shared cmdBeendenBT As Long
Dim Shared cmdLoeschenBT As Long
Dim Shared PictureBox1 As Long
Dim Shared EinzylindermotorjpgPX As Long
': This program uses
': InForm GUI engine for QB64-PE - v1.5.7
': Fellippe Heitor, (2016 - 2022) - @FellippeHeitor
': Samuel Gomes, (2023 - 2025) - @a740g
': https://github.com/a740g/InForm-PE
'-----------------------------------------------------------

': Controls' IDs: ------------------------------------------------------------------
Dim Shared PictureBox1 As Long
Dim Shared EinzylindermotorjpgPX As Long
Dim Shared cmdBeendenBT As Long
Dim Shared cmdLoeschenBT As Long
Dim Shared Button2 As Long
Dim Shared Button3 As Long
Dim Shared txtErgebnis As Long
Dim Shared BerechnenBT As Long
Dim Shared numKolbenhub As Long
Dim Shared numDrehzahl As Long
Dim Shared DieKolbengeschwindigkeitBetraegtLB As Long
Dim Shared KolbenhLB As Long
Dim Shared MotordrehzahlBeiHoechstleistungLB As Long
Dim Shared Form1 As Long
Dim Shared BerechnungDerKolbengeschwindigkeitLB As Long

': External modules: ---------------------------------------------------------------
'$Include:'InForm/InForm.bi'
'$Include:'InForm/xp.uitheme'
'$Include:'Kolbengeschwindigkeit.frm'

': Event procedures: ---------------------------------------------------------------
Sub __UI_BeforeInit

End Sub

Sub __UI_OnLoad

End Sub

Sub __UI_BeforeUpdateDisplay
  'This event occurs at approximately 60 frames per second.
  'You can change the update frequency by calling SetFrameRate DesiredRate%

End Sub

Sub __UI_BeforeUnload
  'If you set __UI_UnloadSignal = False here you can
  'cancel the user's request to close.

End Sub

Sub __UI_Click (id As Long)
  Select Case id
    Case PictureBox1

    Case EinzylindermotorjpgPX

    Case cmdBeendenBT
      If Control(numKolbenhub).Value <> 0 Then
        Text(txtErgebnis) = __UI_StrUsing$("###.##", (((Control(2 * numKolbenhub).Value) * Control(numDrehzahl).Value) / 60 * 100))
      End If
      'Formel: kolbenges = (((2 * kolbenhub) * drehzahl) / (60 * 100))

    Case cmdLoeschenBT

    Case Button2

    Case Button3

    Case txtErgebnis

    Case BerechnenBT

    Case numKolbenhub

    Case numDrehzahl

    Case DieKolbengeschwindigkeitBetraegtLB

    Case KolbenhLB

    Case MotordrehzahlBeiHoechstleistungLB

    Case Form1

    Case BerechnungDerKolbengeschwindigkeitLB

  End Select
End Sub
Reply
@Kernelpanic
I am not the master but it seems to me that:
  1. the first issue is that you have a duplicate of many ID of controls! This is an issue coming out when you edit a previous form in UEditor
  2. the second issue is that you have typed wrong the formula for calculating txtErgebnis

    I hope the attachments will be usefulin this first one the color and the arrow showing the duplicated ID  duplicating ID
    the second attachment I think that the code is uncorrect  Mystake ?!
PS Inform_Pe is only a RAD for using Inform library, the second part of the work has done by QB64pe IDE that is not projected to work for  coding and editing code in Inform_pe style. So you can use the Mark for navigating speedy into the code(Alt + right arrow to set a mark point, Alt+up/down arrow for navigation.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)