Initial import for OS2 tomfoolery
This commit is contained in:
parent
b66b98a55a
commit
8178a13f71
|
@ -0,0 +1,71 @@
|
|||
{$I M_OPS.PAS}
|
||||
|
||||
Unit m_Input_CRT;
|
||||
|
||||
// This is a generic implementation of the Input class which relies on the
|
||||
// FPC CRT unit. This is not really suitable to use but it can sometimes
|
||||
// be useful when beginning to port an MDL application to a new operating
|
||||
// system. The CRT based I/O implementions not only rely on a usable CRT
|
||||
// implementation for that platform, but also are very inefficient. They
|
||||
// should NOT be used.
|
||||
|
||||
Interface
|
||||
|
||||
Type
|
||||
TInputCRT = Class
|
||||
|
||||
Constructor Create;
|
||||
Destructor Destroy; Override;
|
||||
|
||||
Function ProcessQueue : Boolean;
|
||||
Function KeyWait (MS: LongInt) : Boolean;
|
||||
Function KeyPressed : Boolean;
|
||||
Function ReadKey : Char;
|
||||
End;
|
||||
|
||||
Implementation
|
||||
|
||||
Uses
|
||||
CRT;
|
||||
|
||||
Constructor TInputCRT.Create;
|
||||
Begin
|
||||
Inherited Create;
|
||||
End;
|
||||
|
||||
Destructor TInputCRT.Destroy;
|
||||
Begin
|
||||
Inherited Destroy;
|
||||
End;
|
||||
|
||||
Function TInputCRT.ProcessQueue : Boolean;
|
||||
Begin
|
||||
Result := CRT.KeyPressed;
|
||||
End;
|
||||
|
||||
Function TInputCRT.KeyWait (MS: LongInt) : Boolean;
|
||||
Var
|
||||
WaitTimer : LongInt = 0;
|
||||
Begin
|
||||
Result := CRT.KeyPressed;
|
||||
|
||||
While Not Result And (WaitTimer < MS) Do Begin
|
||||
CRT.Delay (20);
|
||||
|
||||
Inc (WaitTimer, 20);
|
||||
|
||||
Result := KeyPressed;
|
||||
End;
|
||||
End;
|
||||
|
||||
Function TInputCRT.ReadKey : Char;
|
||||
Begin
|
||||
Result := CRT.ReadKey;
|
||||
End;
|
||||
|
||||
Function TInputCRT.KeyPressed : Boolean;
|
||||
Begin
|
||||
Result := CRT.KeyPressed;
|
||||
End;
|
||||
|
||||
End.
|
Loading…
Reference in New Issue