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

📄 menu.zrg

📁 掌机使用Zzbase语言的各种的关于各种电力规约如645
💻 ZRG
字号:
define database A
		menuname     :c,16
enddef

define var		
		gMenu        :c,16[8]
		mMenu        :c,16[4]
		addMenu      :c,100[4]
		dbfMenu      :c,16[50]
****************存贮菜单内容的数组变量*******************		
		MenuChoice   :n,3
		BarTitle     :c,20
		SzTitle      :c,20
		Choice       :n,1
		result       :n,1
		z            :n,3
****************一些临时变量****************************		
		x            :n,3
		y            :n,3
		r            :n,3
		side         :n,3
		side1        :n,3
****************绘制方形和圆形所用变量*******************		
		i            :n,3
		j            :n,3
		k            :n,3
		l            :n,3
		m            :n,3
		n1           :n,3
****************绘制振中铭牌所用变量*********************
enddef

****************hide子程序用于隐藏光标*******************
procedure hide
		set mode to 0
		@7,20
		set mode to 1
return
endpro

***************drawpic子程序用于绘制振中公司的铭牌********
procedure drawpic
		line i,j,i+k,j
		line i+l*0.2,j+l*0.2,i+k,j+l*0.2
		line i+l*0.4,j+l*0.4,i+k,j+l*0.4
		line i+l*0.6,j+l*0.6,i+k,j+l*0.6
	
		line i+k+l*0.2,j,i+k+l*0.2+l,j
		line i+k+l*0.4,j+l*0.2,i+k+l*0.4+l,j+l*0.2
		line i+k+l*0.6,j+l*0.4,i+k+l*0.6+l,j+l*0.4
		line i+k+l*0.8,j+l*0.6,i+k+l*0.8+l,j+l*0.6
			
		line i+k+l*0.2,j,i+k+l*0.2,j+m
		line i+k+l*0.4,j+l*0.2,i+k+l*0.4,j+m-l*0.2
		line i+k+l*0.6,j+l*0.4,i+k+l*0.6,j+m-l*0.4
		line i+k+l*0.8,j+l*0.6,i+k+l*0.8,j+m-l*0.6
				
		line i+k+l*0.2+l,j,i+k+l*0.2+l,j-n1
		line i+k+l*0.4+l,j+l*0.2,i+k+l*0.4+l,j-n1+l*0.2
		line i+k+l*0.6+l,j+l*0.4,i+k+l*0.6+l,j-n1+l*0.4
		line i+k+l*0.8+l,j+l*0.6,i+k+l*0.8+l,j-n1+l*0.6				
return
endpro

start
		do while .t.
			clear
			MenuChoice=0
			@0,6 say "演示内容"
			@1,0 say "===================="
			@8,0 say "===================="
			@9,3 say "20"+left(date(),2)+"年"+substr(date(),4,2)+"月"+substr(date(),7,2)+"日"
			mMenu[1]="[1] 绘制图形"
			mMenu[2]="[2] 系统信息"
			mMenu[3]="[3] 电池状态"
			mMenu[4]="[4] 动态菜单"
			addMenu[1]="可以根据输入的数据绘制各种图形。"
			addMenu[2]="可以得到系统的一些信息,从而可以更好的对抄表器进行管理。"
			addMenu[3]="可以提示电池状态,包括电池电压低、正常、充足,电压低时请马上充电。"
			addMenu[4]="该菜单为从数据库中的某字段中取得,为动态生成。"
			@3,4 menu mMenu,4,4
			@2,0 menu addMenu,4
			READ MENU TO MenuChoice
			do case
			   case MenuChoice=1
			        do while .t.
				        clear
				        Choice=0
				        line 0,11,159,10
				        line 0,13,159,12
				        line 0,35,159,35
				        line 0,37,159,37
				        
				        line 0,149,159,149
				        line 0,147,159,147
				        line 0,125,159,125
				        line 0,123,159,123
				        
				        set intensity on
				        @1,0 say space(6)
				        @8,0 say space(6)
				        set intensity off
				        @1,6 say "绘制图形"
				        @8,6 say "振中公司"
				        set intensity on
				        @1,14 say space(6)
				        @8,14 say space(6)
				        set intensity off
				        @3,5 prompt "○ 圆  形"
				        @4,5 prompt "□ 正方形"
				        @5,5 prompt "□ 长方形"
				        @6,5 prompt "△ 铭  牌"
				        Menu to Choice
				        do case
				           case Choice=1
				                clear 6
				                @7,0 say "圆心坐标x:"get x
				                @8,0 say "圆心坐标y:"get y
				                @9,0 say "半径:"get r
				                read
				                if lastkey()=24
				                   loop
				                endif
				                clear
				                circle x,y,r
				                do hide
				                wait ""
				           case Choice=2
				                clear 6
				                @7,0 say "顶角坐标x:"get x
				                @8,0 say "顶角坐标y:"get y
				                @9,0 say "边长:"get side
				                read
				                if lastkey()=24
				                   loop
				                endif
				                clear
				                line x,y,(x+side),y
				                line (x+side),y,(x+side),(y+side)
				                line (x+side),(y+side),x,(y+side)
				                line x,(y+side),x,y
				                do hide
				                wait ""                   
				           case Choice=3
				                clear 6
				                @6,0 say "顶角坐标x:"get x
				                @7,0 say "顶角坐标y:"get y
				                @8,0 say "横向边长:"get side
				                @9,0 say "纵向边长:"get side1
				                read
				                if lastkey()=24
				                   loop
				                endif
				                clear
				                line x,y,(x+side),y
				                line (x+side),y,(x+side),(y+side1)
				                line (x+side),(y+side1),x,(Y+side1)
				                line x,(y+side1),x,y
				                do hide
				                wait ""
				           case Choice=4
				                clear
				                i=0
				                z=1
				                do while z<=6		                 
					                if z=1
					                   i=1
					                else
					                  i=i+27
					                endif		                
					                j=145
					                k=10
					                l=6
					                m=15
					                n1=10
					                z=z+1
				                	do drawpic		                
				                enddo
						@0,0 say "请输入各项值"
						@2,0 say "起点x:"get i  
						@3,0 say "起点y:"get j    &&起点的坐标
						@4,0 say "长度1:"get k    &&左边图形的线长
						@5,0 say "长度2:"get l    &&右边图形的线长
						@6,0 say "长度3:"get m    &&下面的线长
						@7,0 say "长度4:"get n1   &&上面图形的线长
						read
						if lastkey()=24
						   loop
						endif
						clear
						do drawpic				
						do hide
						wait ""
				        otherwise
				                exit
				        endcase
			        enddo			   
			   case MenuChoice=2
			        do while .t.
				        clear
				        Choice=0
				        gMenu[1]="① 机器型号"
				        gMenu[2]="② 出厂日期"
				        gMenu[3]="③ 机器序号"
				        gMenu[4]="④ 软件版本"
				        gMenu[5]="⑤ 硬件版本"
				        gMenu[6]="⑥ FLASH容量"
				        gMenu[7]="⑦ RAM容量"
				        gMenu[8]="⑧ 返回菜单"
				        @0,0 say "********************"
				        @9,0 say "********************"
				        @1,4 menu gMenu,8,8
				        READ MENU TO Choice
				        do case
				           case Choice=1
				                BarTitle="机器型号"
				                SzTitle =GETSYSINFO(1)
				                result=messagebox(SzTitle,0,BarTitle)
				           case Choice=2
				                BarTitle="出厂日期"
				                SzTitle =GETSYSINFO(2)
				                result=messagebox(SzTitle,0,BarTitle)
				           case Choice=3
				                BarTitle="机器序号"
				                SzTitle =GETSYSINFO(3)
				                result=messagebox(SzTitle,0,BarTitle)
				           case Choice=4
				                BarTitle="软件版本"
				                SzTitle =GETSYSINFO(4)
				                result=messagebox(SzTitle,0,BarTitle)
				           case Choice=5
				                BarTitle="硬件版本"
				                SzTitle =GETSYSINFO(5)
				                result=messagebox(SzTitle,0,BarTitle)
				           case Choice=6
				                BarTitle="FLASH容量"
				                SzTitle =GETSYSINFO(6)
				                result=messagebox(SzTitle,0,BarTitle)
				           case Choice=7
				                BarTitle="RAM容量"
				                SzTitle =GETSYSINFO(7)
				                result=messagebox(SzTitle,0,BarTitle)
				           case Choice=8
				                exit        
				       otherwise
				                exit        
				       endcase      
			       enddo               
			   case MenuChoice=3
			        if GETBATTERY()=1
			           sztitle="电池电量偏低,需要充电"
			        endif
			        if GETBATTERY()=2
			           sztitle="电压正常"
			        endif
			        if GETBATTERY()=3
			           sztitle="电压正常,电力充足"
			        endif
			        result=messagebox(sztitle,0,"电池电压提示")
			   case MenuChoice=4
			        i=1
			        do while i<=reccount()
				        go i
				        dbfMenu[i]=trim(menuname)
				        i=i+1
			        enddo
			        clear
			        @0,0 say "******动态菜单******"
			        @9,0 say "*******************"
			        if reccount()>6
			           @2,7 menu dbfMenu,reccount(),6
			           read menu to Choice
			        else
			           @2,7 menu dbfMenu,reccount(),reccount()
			           read menu to Choice
			        endif
			otherwise
			        exit			   
			endcase
		enddo
endstart

⌨️ 快捷键说明

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