Author Topic: InForm Beta 7 is out now  (Read 26239 times)

0 Members and 1 Guest are viewing this topic.

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
Re: InForm Beta 7 is out now
« Reply #15 on: June 03, 2018, 11:50:19 am »
Hi Friends

@Fellippe
sorry I must post this error, an old issue that was present in previous version...(many other issues  are been fixed)
see image Inform7.jpeg


@Bplus
Yes I agree that the great mind is your, mine is just medium...but I can increase it by coding and talking wiht great coders like you, Fellippe, Steve, Pete,   CodeGuy, SkyCharger,.... (oh damn I fall in the error of the list that is always uncomplete...)...
I apologize for all those other QB64 coders, very strong that for my poor memory and lazyness I have put out of this list
Crypting.jpg
* Crypting.jpg (Filesize: 277.37 KB, Dimensions: 1366x768, Views: 577)
inform7betaQB64ide.jpg
* inform7betaQB64ide.jpg (Filesize: 362.81 KB, Dimensions: 1366x768, Views: 607)
Programming isn't difficult, only it's  consuming time and coffee

FellippeHeitor

  • Guest
Re: InForm Beta 7 is out now
« Reply #16 on: June 03, 2018, 12:45:35 pm »
@Tempo:
It is an old known issue but it's a QB64 issue, not InForm's. I understand that chances of it happening are higher with InForm generated programs because of the minimum of 3 mandatory includes, but it's still an issue of QB64 that we are yet to be able to track down.

@bplus:
I understand you had the feeling that Text() was a function but it's clearly stated to be an array in the wiki, with even a link to a dedicated page explaining its use (https://github.com/FellippeHeitor/InForm/wiki/Text). I hope it's all clear now.
« Last Edit: June 03, 2018, 12:47:45 pm by FellippeHeitor »

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
Re: InForm Beta 7 is out now
« Reply #17 on: June 03, 2018, 01:21:03 pm »
Yes, Fellippe, I guess I missed Text() as an array thing in my first readings...

I do think I over compensated by imaging control.property was gone... too early in morning...

So as far as being clear, ha! but practice does make more perfect... I am glad for your help!

Append: err, ah, control(controlID).property, man half the battle is getting that understood. That, and then realizing Text() is not a property.
« Last Edit: June 03, 2018, 02:55:02 pm by bplus »

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
Re: InForm Beta 7 is out now
« Reply #18 on: June 03, 2018, 05:30:14 pm »
Hi Fellippe
sorry but I think to need help about DropDownlist....
as in wiki  https://github.com/FellippeHeitor/InForm/wiki/Value value brings the index of the item selected....but
when I click on a Dropdownlist I am NOT able to get the value (index) of the item leftclicked on...
here my code_example
Code: QB64: [Select]
  1. ': This program uses
  2. ': InForm - GUI library for QB64 - Beta version 7
  3. ': Fellippe Heitor, 2016-2018 - fellippe@qb64.org - @fellippeheitor
  4. ': https://github.com/FellippeHeitor/InForm
  5. '-----------------------------------------------------------
  6.  
  7. ': Controls' IDs: ------------------------------------------------------------------
  8. DIM SHARED coccoprova AS LONG
  9. DIM SHARED DropdownList1 AS LONG
  10. DIM SHARED DropdownList2 AS LONG
  11.  
  12. ': External modules: ---------------------------------------------------------------
  13. '$INCLUDE:'InForm\InForm.ui'
  14. '$INCLUDE:'InForm\xp.uitheme'
  15. '$INCLUDE:'coccoprova.frm'
  16.  
  17. ': Event procedures: ---------------------------------------------------------------
  18. SUB __UI_BeforeInit
  19.  
  20.  
  21. SUB __UI_OnLoad
  22.     '
  23.     AddItem DropdownList1, "Traslation simple fixed" 'a->d = a+3, b->e = b+3, c->f = c+3...z->c z+3-(maxletters=26)
  24.     AddItem DropdownList1, "Traslation simple progressive" 'a->d = a+3, b->f = b+4, c->h = c+5...z->c z+29-(maxletters=26)
  25.     AddItem DropdownList1, "Traslation alternate fixed" 'a->d = a+3, b->f = b+4, c->f = c+3,d->h= d+4...z->d z+4-(maxletters=26)
  26.     AddItem DropdownList1, "Traslation alternate progressive" 'a->d = a+3, b->f = b+4, c->f = c+3, d->i = i+5...z->d z+13-(maxletters=26)
  27.     AddItem DropdownList1, "Traslation bidirectional fixed" ' a->d = a+3, b->y = b-3+26, c->f = c+3,d->a= d-3....z->w= z-3
  28.  
  29.     '
  30.     AddItem DropdownList2, "Traslation simple fixed" 'a->d = a+3, b->e = b+3, c->f = c+3...z->c z+3-(maxletters=26)
  31.     AddItem DropdownList2, "Traslation simple progressive" 'a->d = a+3, b->f = b+4, c->h = c+5...z->c z+29-(maxletters=26)
  32.     AddItem DropdownList2, "Traslation alternate fixed" 'a->d = a+3, b->f = b+4, c->f = c+3,d->h= d+4...z->d z+4-(maxletters=26)
  33.     AddItem DropdownList2, "Traslation alternate progressive" 'a->d = a+3, b->f = b+4, c->f = c+3, d->i = i+5...z->d z+13-(maxletters=26)
  34.     AddItem DropdownList2, "Traslation bidirectional fixed" ' a->d = a+3, b->y = b-3+26, c->f = c+3,d->a= d-3....z->w= z-3
  35.  
  36.  
  37. SUB __UI_BeforeUpdateDisplay
  38.     'This event occurs at approximately 30 frames per second.
  39.     'You can change the update frequency by calling SetFrameRate DesiredRate%
  40.  
  41.  
  42. SUB __UI_BeforeUnload
  43.     'If you set __UI_UnloadSignal = False here you can
  44.     'cancel the user's request to close.
  45.  
  46.  
  47. SUB __UI_Click (id AS LONG)
  48.     SELECT CASE id
  49.         CASE coccoprova
  50.  
  51.         CASE DropdownList1
  52.             Caption(coccoprova) = STR$(value(DropdownList1)) + "-1"
  53.         CASE DropdownList2
  54.             Caption(coccoprova) = STR$(value(DropdownList2)) + " -2"
  55.     END SELECT
  56.  
  57. SUB __UI_MouseEnter (id AS LONG)
  58.     SELECT CASE id
  59.         CASE coccoprova
  60.  
  61.         CASE DropdownList1
  62.  
  63.         CASE DropdownList2
  64.  
  65.     END SELECT
  66.  
  67. SUB __UI_MouseLeave (id AS LONG)
  68.     SELECT CASE id
  69.         CASE coccoprova
  70.  
  71.         CASE DropdownList1
  72.  
  73.         CASE DropdownList2
  74.  
  75.     END SELECT
  76.  
  77. SUB __UI_FocusIn (id AS LONG)
  78.     SELECT CASE id
  79.         CASE DropdownList1
  80.  
  81.         CASE DropdownList2
  82.  
  83.     END SELECT
  84.  
  85. SUB __UI_FocusOut (id AS LONG)
  86.     'This event occurs right before a control loses focus.
  87.     'To prevent a control from losing focus, set __UI_KeepFocus = True below.
  88.     SELECT CASE id
  89.         CASE DropdownList1
  90.  
  91.         CASE DropdownList2
  92.  
  93.     END SELECT
  94.  
  95. SUB __UI_MouseDown (id AS LONG)
  96.     SELECT CASE id
  97.         CASE coccoprova
  98.  
  99.         CASE DropdownList1
  100.  
  101.         CASE DropdownList2
  102.  
  103.     END SELECT
  104.  
  105. SUB __UI_MouseUp (id AS LONG)
  106.     SELECT CASE id
  107.         CASE coccoprova
  108.  
  109.         CASE DropdownList1
  110.  
  111.         CASE DropdownList2
  112.  
  113.     END SELECT
  114.  
  115. SUB __UI_KeyPress (id AS LONG)
  116.     'When this event is fired, __UI_KeyHit will contain the code of the key hit.
  117.     'You can change it and even cancel it by making it = 0
  118.     SELECT CASE id
  119.         CASE DropdownList1
  120.  
  121.         CASE DropdownList2
  122.  
  123.     END SELECT
  124.  
  125. SUB __UI_TextChanged (id AS LONG)
  126.     SELECT CASE id
  127.     END SELECT
  128.  
  129. SUB __UI_ValueChanged (id AS LONG)
  130.     SELECT CASE id
  131.         CASE DropdownList1
  132.  
  133.         CASE DropdownList2
  134.  
  135.     END SELECT
  136.  
  137. SUB __UI_FormResized
  138.  
  139.  

and .FRM file
Code: QB64: [Select]
  1. ': This form was generated by
  2. ': InForm - GUI library for QB64 - Beta version 7
  3. ': Fellippe Heitor, 2016-2018 - fellippe@qb64.org - @fellippeheitor
  4. ': https://github.com/FellippeHeitor/InForm
  5. '-----------------------------------------------------------
  6. SUB __UI_LoadForm
  7.  
  8.     DIM __UI_NewID AS LONG
  9.  
  10.     __UI_NewID = __UI_NewControl(__UI_Type_Form, "coccoprova", 300, 300, 0, 0, 0)
  11.     SetCaption __UI_NewID, "coccoprova"
  12.     Control(__UI_NewID).Stretch = False
  13.     Control(__UI_NewID).Font = SetFont("segoeui.ttf", 12)
  14.  
  15.     __UI_NewID = __UI_NewControl(__UI_Type_DropdownList, "DropdownList1", 200, 23, 50, 138, 0)
  16.     AddItem __UI_NewID, "coccobello"
  17.     Control(__UI_NewID).Stretch = False
  18.     Control(__UI_NewID).HasBorder = True
  19.     Control(__UI_NewID).CanHaveFocus = True
  20.  
  21.     __UI_NewID = __UI_NewControl(__UI_Type_DropdownList, "DropdownList2", 200, 23, 50, 191, 0)
  22.     Control(__UI_NewID).Stretch = False
  23.     Control(__UI_NewID).HasBorder = True
  24.     Control(__UI_NewID).CanHaveFocus = True
  25.  
  26.  
  27. SUB __UI_AssignIDs
  28.     coccoprova = __UI_GetID("coccoprova")
  29.     DropdownList1 = __UI_GetID("DropdownList1")
  30.     DropdownList2 = __UI_GetID("DropdownList2")
  31.  

I think you needn't  the other two files:
'$INCLUDE:'InForm\InForm.ui'
'$INCLUDE:'InForm\xp.uitheme'.

Thank's for Inform and for your help

Programming isn't difficult, only it's  consuming time and coffee

FellippeHeitor

  • Guest
Re: InForm Beta 7 is out now
« Reply #19 on: June 03, 2018, 06:12:52 pm »
@Tempo:

If you want to know which item index was selected by the user:

    theItem% = Control(DropdownList1).Value

It you want to know the contents/text of the item selected:

    theItem$ = GetItem(DropdownList1, thisItem%)

Also, the best place for that would be the ValueChanged event instead of the Click event, but that's up to you.

Let me know how it goes.

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
Re: InForm Beta 7 is out now
« Reply #20 on: June 03, 2018, 07:20:21 pm »
Hi Fellippe,

I started planning a less trivial app that requires one giant picture box 1200 x 700 and a number of controls: buttons, frames with radio buttons... on the right side of the screen. Is there a way to access the right side of the form to drag and drop controls and move them around? It seems the Frm window is stuck always to the right of the properties window.

FellippeHeitor

  • Guest
Re: InForm Beta 7 is out now
« Reply #21 on: June 03, 2018, 07:25:52 pm »
In the View menu -> untick "Keep preview window attached".

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
Re: InForm Beta 7 is out now
« Reply #22 on: June 04, 2018, 02:30:00 am »
Thanks, I have program worked out where everything should go.

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
Re: InForm Beta 7 is out now
« Reply #23 on: June 07, 2018, 01:00:15 pm »
Here is some more testing / experimenting / demonstrating with InForm:

+ My first interest was to test the new undocumented MessageBox&() function, so I have notes included with code for copy/paste or reference later on in convenient place. While testing this function, I became curious how to get a really long title to display. I found an answer!

+ I also wanted to do more testing with the __UI_KEYHIT values being returned and make a handy utility for those numbers. So in this code I used code I found in Wiki under _KEYHIT and added modification of that to message box messages when you hit a key or key combination.

+ I also want to help Fellippe promote this marvelous effort, because I think it is an important step forward with QB and I think it should be supported with interest and questions and practice using.

Snips of important parts:
Code: QB64: [Select]
  1. 'Key_Message.bas for QB64 v1.1(last before number change to 1.2) B+ 2018-06-07
  2.  
  3. 'testing:
  4. ' 1. Message box - and how to get a really long title to show completely?
  5. '    answer: a really long string in message string that word wrap can't split!
  6. ' 2. SETFOCUS demo how it works and allows key presses to be acknowldeged (only my left hand is dyslexic!)
  7. '    maybe it is better used in repaint er ah,  BeforeUpdateDisplay event
  8. '    by setting focus on a control once on OnLoad event
  9. ' 3. What are the __UI_KeyHit values  being returned?
  10. '    Are they the same as code found under _KEYHIT at Wiki?
  11.  

This starts key press messages from get go but, if you take focus off button, you need to click it again (or just mouse over it).
Code: QB64: [Select]
  1. SUB __UI_OnLoad
  2.     SetFocus Button1
  3.  

And this is main event, so to speak:
Code: QB64: [Select]
  1. SUB __UI_KeyPress (id AS LONG)
  2.     'When this event is fired, __UI_KeyHit will contain the code of the key hit.
  3.     'You can change it and even cancel it by making it = 0
  4.  
  5.  
  6.     'test the not yet documented messageBox&
  7.     ' FUNCTION MessageBox& (Message$, Title$, Setup AS LONG)
  8.     'You can change it and even cancel it by making it = 0 <<<<<<<<<< oops ignore this repeated line from above
  9.  
  10.     'Setup is a combination (button + icon) of:
  11.     'Buttons, which can be MsgBox_OkOnly, MsgBox_OkCancel, MsgBox_AbortRetryIgnore, MsgBox_YesNoCancel,
  12.     'MsgBox_YesNo, MsgBox_RetryCancel, MsgBox_CancelTryagainContinue, MsgBox_CancelTryagainContinue.
  13.  
  14.     'Icons, which can be MsgBox_Critical, MsgBox_Question, MsgBox_Exclamation, MsgBox_Information
  15.  
  16.     'The possible return values are: MsgBox_Ok, MsgBox_Cancel, MsgBox_Abort, MsgBox_Retry, MsgBox_Ignore,
  17.     ' MsgBox_Yes, MsgBox_No, MsgBox_Tryagain, MsgBox_Continue.
  18.     DIM x AS LONG
  19.     x = __UI_KeyHit
  20.     m$ = STR$(x) + " = __UI_KeyHit Value," + CHR$(10) + "_KEYHIT Code from wiki came up with this:" + CHR$(10)
  21.  
  22.     '====   reference: https://www.qb64.org/wiki/KEYHIT
  23.     IF x < 0 THEN 'negative value means key released
  24.         m$ = m$ + "Released "
  25.         x = -x
  26.     ELSE
  27.         m$ = m$ + "Pressed " 'positive value means key pressed
  28.     END IF
  29.     IF x < 256 THEN 'ASCII code values
  30.         m$ = m$ + "ASCII" + STR$(x) + " "
  31.         IF x >= 32 AND x <= 255 THEN m$ = m$ + " [" + CHR$(x) + "] "
  32.     END IF
  33.     IF x >= 256 AND x < 65536 THEN '2 byte key codes
  34.         m$ = m$ + "2-BYTE-COMBO" + STR$(x AND 255) + " " + STR$(x \ 256) + " "
  35.         x2 = x \ 256
  36.         IF x2 >= 32 AND x2 <= 255 THEN m$ = m$ + " [" + CHR$(x2) + "] "
  37.     END IF
  38.  
  39.     'this helpful?  I can't get a small b difference with a B
  40.     IF x >= 100000 AND x < 200000 THEN 'QB84 Virtual Key codes
  41.         m$ = m$ + "SDL VK" + STR$(x - 100000) + " "
  42.     END IF
  43.     IF x >= 200000 AND x < &H40000000 THEN
  44.         m$ = m$ + "QB64 VK" + STR$(x - 200000) + " "
  45.     END IF
  46.     IF x >= &H40000000 THEN 'Unicode values (IME Input mode)
  47.         m$ = m$ + "UNICODE" + STR$(x - &H40000000) + " 0x" + HEX$(x - &H40000000) + " ..."
  48.     END IF
  49.  
  50.     'OK simple message box, also testing how to display a really long title in message box
  51.     ans& = MessageBox&(m$ + CHR$(10) + STRING$(150, "+"), "Testing __UI_KeyHit and message box and Wiki code for _KEYHIT.", MsgBox_OkCancel)
  52.     IF ans& = MsgBox_Ok THEN
  53.         'OK then
  54.     ELSE
  55.         END
  56.     END IF
  57.  
  58.     SELECT CASE id
  59.         CASE Button1
  60.  
  61.     END SELECT
  62.  

I was not expecting so many responses from one key press or key combo.

I am concerned about getting a capital B distinguished from a little b and similar combinations of keys eg Ctrl, Alt as well as Shift.

BTW, in this test program, if you click Cancel in the MessageBox, you will end the program.
* Key Message.zip (Filesize: 78.9 KB, Downloads: 272)
« Last Edit: June 07, 2018, 01:12:31 pm by bplus »

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
Re: InForm Beta 7 is out now
« Reply #24 on: June 09, 2018, 10:08:41 am »
Hi Fellippe
you are always very gentle...

yes I must miss the wikipage where I can get this manner to access to index value....

"  theItem% = Control(DropdownList1).Value"  while I have been able to capture the second formula that you have posted....

Following your suggestions about DropDownlList .... how can I get the value of this object in ValueChanged event?
The code example, posted by me, uses the click event only to get a fast feedback on caption of the form.
As you can see in code I have missed the way to access to value because I have imaged that it (property value) was like property text() and I am able to access to it directly as an array.
But that thought is wrong! Now, thank's to you I know how access to value of DropDownList.

As soon as I'll post the Inform version of a simple CryptoProgram

Thank's for help and for Inform
Programming isn't difficult, only it's  consuming time and coffee

FellippeHeitor

  • Guest
Re: InForm Beta 7 is out now
« Reply #25 on: June 10, 2018, 11:04:45 am »
Just move the code you wrote in the Click event to the ValueChanged event. Because a user may click a list box but not change its contents, the ValueChanged event is more suitable as it will only be triggered when a new item is actually selected, so that makes more sense in your case.

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
Re: InForm Beta 7 is out now
« Reply #26 on: June 14, 2018, 05:42:35 pm »
Thank's Fellippe

I agree  and as soon as I'll post the new educational program that I have coded in Inform version....
for now in another thread I post the ASCII version

Thank's
Programming isn't difficult, only it's  consuming time and coffee

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
Re: InForm Beta 7 is out now
« Reply #27 on: June 17, 2018, 09:35:50 am »
Hi Fellippe

1. I need help:
label has an autosize property?
On run, changing the caption of a label
both directly using Caption(MyLabelLB)= "MyString"
both using SetCaption MyLabelLB, "MyString"
the label doesn't contain all the new string.

It is possible to do this in InForm?

2. Feedback on WIKI of Inform....
the link to WordWrap in this page https://github.com/FellippeHeitor/InForm/wiki/Label bring me to the main page of wiki of Inform and not to the page "https://github.com/FellippeHeitor/InForm/wiki/WordWrap" that is pointed by the link

Thank's
Programming isn't difficult, only it's  consuming time and coffee

FellippeHeitor

  • Guest
Re: InForm Beta 7 is out now
« Reply #28 on: June 17, 2018, 09:44:16 am »
1. Labels will only autosize at design time (a feature I added after your request), but not at run time. I recommend that you make them big enough so that no text will be clipped. Or even better, make it not only long, but also tall, and set the .WordWrap feature to True.

2. You'll notice that the link to the WordWrap page is colored red for now, which means I didn't write that page yet. Thanks for reporting. I will be updating the wiki soon after your feedback (and also bplus's feedback).

Is this the text encoder you're writing?
« Last Edit: June 17, 2018, 09:45:55 am by FellippeHeitor »

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
Re: InForm Beta 7 is out now
« Reply #29 on: June 17, 2018, 09:57:06 am »
Hi Fellippe
Thank's for answers...
I have tried also to setting to true the property WordWrap, Multiline and CanResize....
Code: QB64: [Select]
  1.     ' enlarging label of results
  2.     Control(MessageAtStartAsWrittenByUserLB).WordWrap = True
  3.     Control(MessageAtStartAsWrittenByUserLB).Multiline = True
  4.     Control(MessageAtStartAsWrittenByUserLB).CanResize = True
  5.  
  6.     Control(EncryptedMessageLB).WordWrap = True
  7.     Control(EncryptedMessageLB).CanResize = True
  8.     Control(EncryptedMessageLB).Multiline = True
  9.  
  10.     Control(DecryptedMessageLB).WordWrap = True
  11.     Control(DecryptedMessageLB).Multiline = True
  12.     Control(DecryptedMessageLB).CanResize = True
  13.  
but as you already knows it is unuseful.... OK I must program a good space/size of Label that I use for output at design time....
Thank's again

Yes I'm porting in  Inform the core of encrypt/decrypt ver 0.2 but I'm still learning to use with most efficacy Inform!
Thank's for this wonderful tool
« Last Edit: June 17, 2018, 07:24:06 pm by TempodiBasic »
Programming isn't difficult, only it's  consuming time and coffee