I looked all over for some dang reference to setfocus in the Wiki, I did find FocusIn and FocusOut described but nothing about SetFocus which should be a word on the list there. I did not try search... now that I think of it.
Well, a book won't get a second edition if no one's reading it. I didn't bother updating the wiki in a while because there was no feedback of anyone reading it, so I'll dedicate some time to getting it up to date with beta 7.
if you have something about z order of controls (for tabbing and focus...)
Edit -> Z-Ordering.
what do you think about a board for InForm and Collecting notes for Wiki, here or at least a dedicated thread pinned. You'd probably prefer GitHub?
GitHub does have a dedicated section for issues, but I won't force anyone to make an account. Anywhere you post about InForm here in the forum will catch my attention and I'm always willing to assist, so let's keep it going as we are and it's all good.
OK so how much area is taken away for button beveling?
In the current XP theme, it's 3 pixels from the top and 3 pixels from the bottom, that is, Control().Height - 6.
Can we control the color of bevel? (because neither fore nor back color effect it and it is white before a button gets focus so focus color doesn't help.)
Nope. Buttons follow the theme's imagery, in this case Windows XP's silver theme.
Also I did stumble upon a bunch of message box constants, that would imply there is message box service but not on the linked word list.
Not yet documented, but here goes:
FUNCTION MessageBox& (Message$, Title$, Setup AS LONG)Not specifying Title$ will have the message box inherit the main form's title/caption.
Setup is a combination (button + icon) of:
Buttons, which can be MsgBox_OkOnly, MsgBox_OkCancel, MsgBox_AbortRetryIgnore, MsgBox_YesNoCancel, MsgBox_YesNo, MsgBox_RetryCancel, MsgBox_CancelTryagainContinue, MsgBox_CancelTryagainContinue.
Icons, which can be MsgBox_Critical, MsgBox_Question, MsgBox_Exclamation, MsgBox_Information
The possible
return values are: MsgBox_Ok, MsgBox_Cancel, MsgBox_Abort, MsgBox_Retry, MsgBox_Ignore, MsgBox_Yes, MsgBox_No, MsgBox_Tryagain, MsgBox_Continue.
All combinations of the above work as expected in Windows. For macOS and Linux, you only get OkOnly and YesNo for buttons.
Now that we have mouse locating code for picture box and picture box does take click events, we could put simulated buttons in the picture box but that is kind of silly.
For goodness sake, don't. If you don't want a button with an image, just place a new PictureBox control in place of the button and respond to the Click event, which will work fine for a picturebox control, but don't _PUTIMAGE the button image onto the main canvas, as that would mean not needing InForm at all and be just silly as you put it.
If you do decide to replace buttons with picturebox controls, you can make use of the MouseEnter and MouseLeave events to use different images for hovered/not hovered, as I cover (although with labels, but the functionality is the same) in this video:
&t=1s