forked from QB64-Phoenix-Edition/QB64pe
-
Notifications
You must be signed in to change notification settings - Fork 0
COMMAND$
github-actions[bot] edited this page Jun 16, 2022
·
7 revisions
The _WIDTH function returns the width of an image handle or of the current write page.
- = _WIDTH[()]
- If is omitted, it's assumed to be the handle of the current SCREEN or write page.
- To get the width of the current program screen window use zero for the handle value or nothing: = _WIDTH(0) or = _WIDTH
- If the image specified by is in text only(SCREEN 0) mode, the number of characters per row is returned.
- If the image specified by is in graphics mode, the number of pixels per row is returned.
- If is an invalid handle, then an invalid handle error is returned.
- The last visible pixel coordinate of a program screen is _WIDTH - 1.
s& = {{Cl|_NEWIMAGE}}(800, 600, 256)
SCREEN s&
Align 15, 5, s&, "This text is centered on the screen!"
SUB Align (Tcolor, Trow, mode&, txt$)
center& = {{Cl|_WIDTH (function)|_WIDTH}} (mode&) \ 2 'returns pixels in graphic modes
MaxCol = (center& \ 8) + 1 'screen text width = 8 pixels
Tcol = MaxCol - ({{Cl|LEN}}(txt$) \ 2)
{{Cl|COLOR}} Tcolor: {{Cl|LOCATE}} Trow, Tcol: {{Cl|PRINT}} txt$;
END SUB
- Explanation: _NEWIMAGE enlarges a screen to 800 pixels wide which is what _WIDTH function will return. The center is 800 \ 2 or 400. Since the text width is 8 pixels, that is divided by 8 to get 50 as the center text column. Then half of the text length is subtracted to find the starting text print LOCATE column.
- Note: The screen handle parameter is required because using no handle could assume other page handles created by functions like _NEWIMAGE or _PUTIMAGE. Use the correct handle in the SUB call! When using SCREEN 0, the MaxCol variable is not needed because _WIDTH returns the number of text columns, not pixels. Use the center value and add 1. Tcol = (center& + 1) - LEN(txt$) \ 2