QB64 Phoenix Edition
Using the Screen function - Printable Version

+- QB64 Phoenix Edition (https://qb64phoenix.com/forum)
+-- Forum: QB64 Rising (https://qb64phoenix.com/forum/forumdisplay.php?fid=1)
+--- Forum: Code and Stuff (https://qb64phoenix.com/forum/forumdisplay.php?fid=3)
+---- Forum: Help Me! (https://qb64phoenix.com/forum/forumdisplay.php?fid=10)
+---- Thread: Using the Screen function (/showthread.php?tid=2577)

Pages: 1 2


Using the Screen function - PhilOfPerth - 04-05-2024

Can  the Screen(row,column) function be used to find the character at a screen location after using _newImage and setting a font?
When I try to run these few lines, I don't get the results I expect:
Code: (Select All)
WWidth = 1120: WHeight = 820: Mode = 32: Size = 24
Screen _NewImage(WWidth, WHeight, Mode)
SetFont: f& = _LoadFont("C:\WINDOWS\fonts\courbd.ttf", Size, "monospace"): _Font f&

Locate 15, 40: Print "X"
p% = Screen(15, 40)
Print "screen(15,40) is"; p%: Sleep

' with lines 3 and 4 both in, an Illegal Function message is shown.
' with line 3 in, and line 4 out, the  char number is reported as 219.
' with line 4 in and  line 3 out, the expected code (88) is shown.



RE: Using the Screen function - bplus - 04-05-2024

maybe if you use mode = 0 not mode 32

hey it's 7;07 am what are you doing up so early ? lol

yeah ok change wwidth and hheight to screen 0 columns and rows
Code: (Select All)
'WWidth = 1120: WHeight = 820:
Mode = 0: Size = 24
Screen _NewImage(80, 30, Mode)
SetFont: f& = _LoadFont("C:\WINDOWS\fonts\courbd.ttf", Size, "monospace"): _Font f&

Locate 15, 40: Print "X"
p% = Screen(15, 40)
Print "screen(15,40) is"; p%: Sleep

' with lines 3 and 4 both in, an Illegal Function message is shown.
' with line 3 in, and line 4 out, the  char number is reported as 219.
' with line 4 in and  line 3 out, the expected code (88) is shown.

must be the banner inspiring this crap! lol


RE: Using the Screen function - bplus - 04-05-2024

the only good reason to use screen 0 is for screen function Big Grin


RE: Using the Screen function - PhilOfPerth - 04-05-2024

(04-05-2024, 11:13 AM)bplus Wrote: the only good reason to use screen 0 is for screen function Big Grin

Thanks bplus. Screen  0 works for this example. But I need text and graphics, and this mode doesn't provide the features I need.
I want to use thiis font, and this screen size, and a set number of chars per line.. Then I need to look at a screen row and see 
what character is at position P of that row.

I think maybe the simplest way is to map the row, call it RefRow$(), then when chars are printed on it, place the char in this array.

Code: (Select All)
WWidth = 1120: WHeight = 820: Mode = 32: Size = 24
Screen _NewImage(WWidth, WHeight, Mode)
SetFont: f& = _LoadFont("C:\WINDOWS\fonts\courbd.ttf", Size, "monospace"): _Font f&
lhs = (_DesktopWidth - WWidth) / 2
_ScreenMove lhs, 86 ' centre display on screen
CPL = WWidth / _PrintWidth("X")
Print "cpl is"; CPL

Ref = 15: p = 40
Dim RefRow$(80): Locate Ref, p: Print "X": RefRow$(p) = "X"

Print RefRow$(40)

A bit simplistic, but it works ok. What do you think?


RE: Using the Screen function - bplus - 04-06-2024

+1 yep exactly what I would do!

I'd go a step further and make a function that saves the text in an array and prints to screen.


RE: Using the Screen function - SMcNeill - 04-06-2024

I'd just dual print to 2 different screens, and keep the SCREEN 0 screen hidden so I could read back from it at any time, without the user knowing.  Big Grin


RE: Using the Screen function - bplus - 04-06-2024

+1 good idea


RE: Using the Screen function - Pete - 04-06-2024

I'm jus gladd to sea peeple who dont usze SCREEN 0 our FOCKED. 

Peat


RE: Using the Screen function - bplus - 04-06-2024

hey what happened to the points?


RE: Using the Screen function - Pete - 04-06-2024

Just Steve messing with us. Wink