⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gscreen.tpl

📁 在手机操作系统symbina上使用的一个脚本扩展语言的代码实现,可以参考用于自己的开发
💻 TPL
字号:
REM gScreen.tpl
REM EPOC OPL automatic test code for screen.
REM Copyright (c) 1991-2000 Symbian Ltd. All rights reserved.

INCLUDE "Const.oph"
INCLUDE "hUtils.oph"

PROC Standalone:
	REM Main procedure called when not running inside test harness.
	LOADM KhUtils$
	hLink:( "gscreen", hThreadIdFromOplDoc&:, KhUserFull%)
	REM After standalone completion, control returns here.
	dINIT "Tests complete" :DIALOG
ENDP


proc gScreen:
	rem hInitTestHarness:(KhInitLocalErrorHandling%, KhInitNotUsed%)
	hRunTest%:("dogscreen")
rem	hCleanUp%:("CleanUp")
endp


PROC dogScreen:
	local info%(10),originalWidth%,originalHeight%
	screeninfo info%()

	originalWidth%=info%(KSInfoAScrW%)
	originalHeight%=info%(KSInfoAScrH%)
	
	try:(20,10,30,3)
	try:(10,10,1,1)
	try:(80,18,0,0)
	
	REM Restore.
	try:(originalWidth%,originalHeight%,0,0)
	cls
endp


proc try:(aW%,aH%,aX%,aY%)
	local i%
	print aw%,ah%,ax%,ay%
	screen aw%,ah%,ax%,ay%
	do
		print datim$,
		i%=i%+1
	until i%=100
ENDP



proc originalgScreen:
	global chrW%,chrH%  rem character width and height
	global maxCol%,maxRow%,margX%,margY%
	global font&
	global info%(10)
	local err%
	
	trap loadm "g3bplus"
	err%=err
	if err%=0 or err%=-104
		scrInfoX:(addr(info%()))
		chrW%=info%(7) :chrH%=info%(8)
		font&=int(info%(9))+int(info%(10))*(&2**&10)
		busyXX:("")
	endif

	type:
	gBars:
	
	trap unloadm "g3bplus"
endp


proc gBars:
	margX%=info%(1)
	margY%=info%(2)
	maxCol%=(gWidth-2*margX%)/chrW%
	maxRow%=(gHeight-2*margY%)/chrH%
	gCls

	doScr:(10,1)
	doScr:(10,2)
	doScr:(maxCol%-2,maxRow%-2)
	doScr:(maxCol%-2,maxRow%-1)
	doScr:(maxCol%-2,maxRow%)
	doScr:(maxCol%-1,maxRow%-2)
	doScr:(maxCol%-1,maxRow%-1)
	doScr:(maxCol%-1,maxRow%)
	doScr:(maxCol%,maxRow%-2)
	doScr:(maxCol%,maxRow%-1)
	doScr:(maxCol%,maxRow%)
endp


proc doScr:(w%,h%)
	local x%,y%,info$(255),i%

	cls
	if maxCol% and $1		rem odd
		x%=1+maxCol%/2-w%/2
	else							rem even
		x%=1+maxCol%/2-(w%+1)/2
	endif
	y%=1+maxRow%/2-h%/2
	
	info$=num$(w%,3)+","+num$(h%,3)+","+num$(x%,3)+","+num$(y%,3)
	screen w%,h%,x%,y%
	print info$;
	i%=0
	while i%<h%-1
		print rept$("x",w%);
		i%=i%+1
	endwh
	print rept$("x",w%-len(info$));
	gBorder 0
	get
	
	cls
	screen w%,h%
	info$=num$(w%,3)+","+num$(h%,3)
	print info$;
	i%=0
	while i%<h%-1
		print rept$("x",w%);
		i%=i%+1
	endwh
	print rept$("x",w%-len(info$));
	gBorder 0	
	get
endp

proc type:
	local g%,w%,h%,x%,y%
	local margX%,margY%

	margX%=info%(1)
	margY%=info%(2)
	w%=20 :h%=3 :x%=2 :y%=2
	cursor on
	gFont font&
	gStyle 16 :rem mono
	gTMode 3
	cls
	gAt chrW%-2+margX%,chrH%-1+margY% :gBox w%*chrW%+3,h%*chrH%+2
	screen w%,h%,x%,y%
	print rept$(rept$("x",w%),h%)
	print "screen ";w%;",";h%;",";x%;",";y%
	get
	cls
	at 1,1
	gAt chrW%,60
	do
		g%=get
		print chr$(g%);		
		if g%=13
			gAt chrW%,50
		elseif g%=8
			if gX>chrW%
				gMove -chrW%,0
			endif
		else
			gPrint chr$(g%);
			if gX>=w%*chrW%+5 :gAt chrW%,50 :endif
		endif
	until g%=27
endp


PROC Reset:
	gSetwin 0,0,lcdW%,lcdH%
	screen scrnW%,scrnH%,1,1
	gFont 12
	gStyle 0
	gGMode 0
	gTMode 0
	cls
	gCls
	gUpdate on
	gUpdate
ENDP

REM End of gScreen.tpl

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -