Форум: "Основная";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
ВнизЛамерский вопрос Найти похожие ветки
← →
Бурундук (2002-04-03 16:48) [5]var
theKey: TKey;
implementation
{----- TKey methods ----}
constructor TKey.Init(ACode: Integer);
begin
Scan := ACode<0;
Value := Char(Abs(ACode));
Throu := False;
end;
procedure TKey.Get;
begin
if Throu then
Throu := False
else
begin
Scan := False;
Value := ReadKey;
if Value = keyZero then
begin
Scan := True;
Value := ReadKey;
end;
end;
end;
procedure TKey.SetEqual(AKey: TKey);
begin
Scan := AKey.Scan;
Value := AKey.Value;
end;
procedure TKey.SendCode(ACode: Integer);
begin
Init(ACode);
Unget;
end;
procedure TKey.SendChar(AValue: Char);
begin
Value := AValue;
Scan := False;
Unget;
end;
function TKey.Pressed: Boolean;
begin
if KeyPressed or Throu then
begin
Pressed := True;
if not Throu then
begin
Scan := False;
Value := ReadKey;
if Value = keyZero then
begin
Scan := True;
Value := ReadKey;
end;
end else Throu := False;
end
else
Pressed := False;
end;
function TKey.FirstChar: Char;
begin
if Scan = NormalKey then
FirstChar := Value
else
FirstChar := keyZero;
end;
function TKey.Code: Integer;
begin
if Scan then
Code := - Ord(Value)
else
Code := Ord(Value);
end;
{-------------Comparison------------------}
function TKey.Is(ACode: Integer): Boolean;
begin
if ( (ACode<0)=Scan ) and ( Ord(Value)=Abs(ACode)) then
Is := True
else
Is := False;
end;
function TKey.IsChar(AValue: Char): Boolean;
begin
if (Scan = NormalKey) and(Value = AValue) then
IsChar := True
else
IsChar := False;
end;
function TKey.IsClear: Boolean;
begin
if (Scan = NormalKey) and(Value = keyZero) then
IsClear := True
else
IsClear := False;
end;
{-----------------}
function TKey.IsNumber: Boolean;
begin
if (not Scan)and(Value in["1","2","3","4","5","6","7","8","9","0",".","-"]) then
IsNumber := True
else
IsNumber := False;
end;
function TKey.IsSpec: Boolean;
begin
if (not Scan)and(Ord(Value) < 32) then
IsSpec := True
else
IsSpec := False;
end;
function TKey.IsText: Boolean;
begin
if (not Scan)and(Ord(Value)>=32)and(Ord(Value)<128) then
IsText := True
else
IsText := False;
end;
function TKey.IsLetter: Boolean;
var
O: Byte;
begin
O := Ord(Value);
if (not Scan)and
( ( (O >= 65)and(O <= 90 ) )
or ( (O >= 97)and(O <= 122) ) ) then
IsLetter := True
else
IsLetter := False;
end;
{--------------------}
function TKey.IsIn(SetOfChar: TSetOfChar): Boolean;
begin
if (not Scan)and(Value in SetOfChar) then
IsIn := True
else
IsIn := False;
end;
function TKey.IsEsc: Boolean;
begin
if not Scan and (Value = keyEsc) then
IsEsc := True
else
IsEsc := False;
end;
function TKey.IsEnter: Boolean;
begin
if not Scan and (Value = keyEnter) then
IsEnter := True
else
IsEnter := False;
end;
function TKey.IsEqual(AKey: TKey): Boolean;
begin
if (Scan = AKey.Scan)and(Value = AKey.Value) then
IsEqual := True
else
IsEqual := False;
end;
destructor TKey.Done;
begin
end;
{--------------------------------------}
function TKey.UpIs(AValue: Char): Boolean;
begin
if (Scan = NormalKey)and( Upcase(Value) = Upcase(AValue)) then
UpIs := True
else
UpIs := False;
end;
function TKey.UpIsIn(SetOfChar: TSetOfChar): Boolean;
begin
if (not Scan)and(UpCase(Value) in SetOfChar) then
UpIsIn := True
else
UpIsIn := False;
end;
function TKey.UpIsEqual(AKey: TKey): Boolean;
begin
if (Scan = AKey.Scan)and(Upcase(Value) = Upcase(AKey.Value)) then
UpIsEqual := True
else
UpIsEqual := False;
end;
procedure TKey.Unget;
begin
Throu := True;
end;
procedure TKey.Clear;
begin
{Throu := False;}
Init(kcClear);
end;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c