|
@@ -28,6 +28,19 @@ const
|
|
|
ShiftPrefix : byte = 0;
|
|
|
CtrlPrefix : byte = 0;
|
|
|
|
|
|
+type
|
|
|
+ Tprocedure = procedure;
|
|
|
+
|
|
|
+ PTreeElement = ^TTreeElement;
|
|
|
+ TTreeElement = record
|
|
|
+ Next,Parent,Child : PTreeElement;
|
|
|
+ CanBeTerminal : boolean;
|
|
|
+ char : byte;
|
|
|
+ ScanValue : byte;
|
|
|
+ CharValue : byte;
|
|
|
+ SpecialHandler : Tprocedure;
|
|
|
+ end;
|
|
|
+
|
|
|
function RawReadKey:char;
|
|
|
function RawReadString : String;
|
|
|
function KeyPressed : Boolean;
|
|
@@ -35,6 +48,9 @@ procedure AddSequence(const St : String; AChar,AScan :byte);inline;
|
|
|
function FindSequence(const St : String;var AChar, Ascan : byte) : boolean;
|
|
|
procedure RestoreStartMode;
|
|
|
|
|
|
+function AddSpecialSequence(const St : string;Proc : Tprocedure) : PTreeElement; platform;
|
|
|
+
|
|
|
+
|
|
|
{*****************************************************************************}
|
|
|
implementation
|
|
|
{*****************************************************************************}
|
|
@@ -546,19 +562,6 @@ const
|
|
|
LastMouseEvent:=MouseEvent;
|
|
|
end;
|
|
|
|
|
|
-type
|
|
|
- Tprocedure = procedure;
|
|
|
-
|
|
|
- PTreeElement = ^TTreeElement;
|
|
|
- TTreeElement = record
|
|
|
- Next,Parent,Child : PTreeElement;
|
|
|
- CanBeTerminal : boolean;
|
|
|
- char : byte;
|
|
|
- ScanValue : byte;
|
|
|
- CharValue : byte;
|
|
|
- SpecialHandler : Tprocedure;
|
|
|
- end;
|
|
|
-
|
|
|
var roottree:array[char] of PTreeElement;
|
|
|
|
|
|
procedure FreeElement (PT:PTreeElement);
|