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

📄 read_key.pro

📁 basic median filter simulation
💻 PRO
字号:
FUNCTION read_key, wait;+; NAME:;	READ_KEY; PURPOSE:;	To read a keystroke and return its ASCII equivalent; EXPLANATION:;	If an ESCAPE sequence was produced and  the sequence is;	recognized (e.g. up arrow), then a code is returned.;;       This functionality is mostly made obsolete by the addition of the;       ESCAPE and KEY_NAME keywords to GET_KBRD in IDL V6.2;; CALLING SEQUENCE:;	key = READ_KEY(Wait);; INPUTS:;	Wait  -  The wait flag.  If non-zero, execution is halted until a;	         key is struck.  If zero, execution returns immediately and;	         a zero is returned if there was no keystroke waiting in the;	         keyboard buffer.  If not specified, zero is assumed.;; OUTPUT:;	Returned - The key struck.  The ASCII code for non-escape sequences.;	           Escape sequence equivalents:;			Up Arrow     --  128;			Down Arrow   --  130;			Left Arrow   --  129;			Right Arrow  --  131;			Else         --    0;;	The return value is a byte value.;; MODIFICATION HISTORY:;	Written by Michael R. Greason, STX, 22 June 1990.;	Rewritten for a SUN workstation.  MRG, STX, 23 August 1990.;	Converted to IDL V5.0   W. Landsman   September 1997;-;			Check the input parameter.;IF (n_params(0) LT 1) THEN wait = 0;;			Get the keystroke.;key = byte(get_kbrd(wait))key = key[0];;			If it is an ESCAPE, get the rest of it and ;			then decode it.;IF (key EQ 27B) THEN BEGIN	st = bytarr(10);;				Get the rest of the escape sequence.;	i = 0	REPEAT BEGIN		key = byte(get_kbrd(0))		st[i] = key[0]		i = i + 1	ENDREP UNTIL (st[i-1] EQ 0B);;				Decode the escape sequence.;	CASE string(st) OF		'[A' : key = 128B		'[B' : key = 130B		'[D' : key = 129B		'[C' : key = 131B		ELSE : BEGIN				 IF (i GT 1) THEN key = 0B ELSE key = 27B		       END	ENDCASEENDIF;;			If it is a CSI, get the rest of it and ;			then decode it.;IF (key EQ '9B'XB) THEN BEGIN	st = bytarr(10);;				Get the rest of the sequence.;	i = 0	REPEAT BEGIN		key = byte(get_kbrd(0))		st[i] = key[0]		i = i + 1	ENDREP UNTIL (st[i-1] EQ 0B);;				Decode the sequence.;	CASE string(st) OF		'A' : key = 128B		'B' : key = 130B		'D' : key = 129B		'C' : key = 131B		ELSE : BEGIN				 IF (i GT 1) THEN key = 0B ELSE key = '9B'XB		       END	ENDCASEENDIF;;			If it is a SS3, get the rest of it and ;			then decode it.;IF (key EQ '8F'XB) THEN BEGIN	st = bytarr(10);;				Get the rest of the sequence.;	i = 0	REPEAT BEGIN		key = byte(get_kbrd(0))		st[i] = key[0]		i = i + 1	ENDREP UNTIL (st[i-1] EQ 0B);;				Decode the sequence.;	CASE string(st) OF		ELSE : BEGIN				 IF (i GT 1) THEN key = 0B ELSE key = '8F'XB		       END	ENDCASEENDIF;RETURN, keyEND

⌨️ 快捷键说明

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