Moved / cleaned up CheckNodeMessages function
This commit is contained in:
parent
2d8602426f
commit
bba8ac7cd9
|
@ -248,14 +248,15 @@ Begin
|
|||
Else Begin
|
||||
Inc (CurY);
|
||||
Inc (CurLine);
|
||||
|
||||
UpdatePosition;
|
||||
End;
|
||||
End;
|
||||
|
||||
Procedure keyUpArrow (EOL: Boolean);
|
||||
Procedure keyUpArrow (MoveToEOL: Boolean);
|
||||
Begin
|
||||
If CurLine > 1 Then Begin
|
||||
If EOL then begin
|
||||
If MoveToEOL Then Begin
|
||||
CurX := Length(Session.Msgs.MsgText[CurLine - 1]) + 1;
|
||||
If CurX > WrapPos Then CurX := WrapPos + 1;
|
||||
End;
|
||||
|
@ -265,6 +266,7 @@ Begin
|
|||
Else Begin
|
||||
Dec (CurY);
|
||||
Dec (CurLine);
|
||||
|
||||
UpdatePosition;
|
||||
End;
|
||||
End;
|
||||
|
@ -272,12 +274,14 @@ End;
|
|||
|
||||
Procedure keyBackspace;
|
||||
Var
|
||||
A : Integer;
|
||||
Count : Integer;
|
||||
Begin
|
||||
If CurX > 1 Then Begin
|
||||
Session.io.OutBS(1, True);
|
||||
Dec (CurX);
|
||||
|
||||
Dec (CurX);
|
||||
Delete (Session.Msgs.MsgText[CurLine], CurX, 1);
|
||||
|
||||
If CurX < Length(Session.Msgs.MsgText[CurLine]) + 1 Then Begin
|
||||
Print (Copy(Session.Msgs.MsgText[CurLine], CurX, Length(Session.Msgs.MsgText[CurLine])) + ' ');
|
||||
UpdatePosition;
|
||||
|
@ -285,22 +289,31 @@ Begin
|
|||
End Else
|
||||
If CurLine > 1 Then Begin
|
||||
If Length(Session.Msgs.MsgText[CurLine - 1]) + Length(Session.Msgs.MsgText[CurLine]) <= WrapPos Then Begin
|
||||
|
||||
CurX := Length(Session.Msgs.MsgText[CurLine - 1]) + 1;
|
||||
|
||||
Session.Msgs.MsgText[CurLine - 1] := Session.Msgs.MsgText[CurLine - 1] + Session.Msgs.MsgText[CurLine];
|
||||
|
||||
DeleteLine (CurLine);
|
||||
Dec (CurLine);
|
||||
Dec (CurY);
|
||||
Dec (CurLine);
|
||||
Dec (CurY);
|
||||
|
||||
If CurY < WinStart Then TextRefreshFull Else TextRefreshPart;
|
||||
End Else
|
||||
If Pos(' ', Session.Msgs.MsgText[CurLine]) > 0 Then Begin
|
||||
For A := Length(Session.Msgs.MsgText[CurLine]) DownTo 1 Do
|
||||
If (Session.Msgs.MsgText[CurLine][A] = ' ') and (Length(Session.Msgs.MsgText[CurLine - 1]) + A - 1 <= WrapPos) Then Begin
|
||||
|
||||
For Count := Length(Session.Msgs.MsgText[CurLine]) DownTo 1 Do
|
||||
If (Session.Msgs.MsgText[CurLine][Count] = ' ') and (Length(Session.Msgs.MsgText[CurLine - 1]) + Count - 1 <= WrapPos) Then Begin
|
||||
CurX := Length(Session.Msgs.MsgText[CurLine - 1]) + 1;
|
||||
Session.Msgs.MsgText[CurLine - 1] := Session.Msgs.MsgText[CurLine - 1] + Copy(Session.Msgs.MsgText[CurLine], 1, A - 1);
|
||||
Delete (Session.Msgs.MsgText[CurLine], 1, A);
|
||||
Dec (CurLine);
|
||||
Dec (CurY);
|
||||
|
||||
Session.Msgs.MsgText[CurLine - 1] := Session.Msgs.MsgText[CurLine - 1] + Copy(Session.Msgs.MsgText[CurLine], 1, Count - 1);
|
||||
|
||||
Delete (Session.Msgs.MsgText[CurLine], 1, Count);
|
||||
Dec (CurLine);
|
||||
Dec (CurY);
|
||||
|
||||
If CurY < WinStart Then TextRefreshFull Else TextRefreshPart;
|
||||
|
||||
Exit;
|
||||
End;
|
||||
|
||||
|
@ -310,25 +323,62 @@ Begin
|
|||
End;
|
||||
|
||||
Procedure keyLeftArrow;
|
||||
begin
|
||||
if curx > 1 then Begin
|
||||
Begin
|
||||
If CurX > 1 Then Begin
|
||||
Dec (CurX);
|
||||
|
||||
UpdatePosition;
|
||||
end else
|
||||
keyUpArrow(true);
|
||||
End Else
|
||||
keyUpArrow(True);
|
||||
End;
|
||||
|
||||
Procedure keyRightArrow;
|
||||
Begin
|
||||
If CurX < Length(Session.Msgs.MsgText[CurLine]) + 1 Then Begin
|
||||
Inc (CurX);
|
||||
|
||||
UpdatePosition;
|
||||
End Else Begin
|
||||
If CurY < TotalLine Then CurX := 1;
|
||||
|
||||
keyDownArrow;
|
||||
End;
|
||||
End;
|
||||
|
||||
Procedure keyPageUp;
|
||||
Begin
|
||||
If CurLine > 1 Then Begin
|
||||
If LongInt(CurLine - (WinEnd - WinStart)) >= 1 Then
|
||||
Dec (CurLine, (WinEnd - WinStart))
|
||||
Else
|
||||
CurLine := 1;
|
||||
|
||||
TextRefreshFull;
|
||||
End;
|
||||
End;
|
||||
|
||||
Procedure keyPageDown;
|
||||
Begin
|
||||
If CurLine < TotalLine Then Begin
|
||||
|
||||
If CurLine + (WinEnd - WinStart) <= TotalLine Then
|
||||
Inc (CurLine, (WinEnd - WinStart))
|
||||
Else
|
||||
CurLine := TotalLine;
|
||||
|
||||
TextRefreshFull;
|
||||
End;
|
||||
End;
|
||||
|
||||
Procedure keyEnd;
|
||||
Begin
|
||||
CurX := Length(Session.Msgs.MsgText[CurLine]) + 1;
|
||||
|
||||
If CurX > WrapPos Then CurX := WrapPos + 1;
|
||||
|
||||
UpdatePosition;
|
||||
End;
|
||||
|
||||
Procedure AddChar (Ch: Char);
|
||||
Begin
|
||||
If InsertMode Then Begin
|
||||
|
@ -375,13 +425,13 @@ End;
|
|||
|
||||
Procedure Quote;
|
||||
Var
|
||||
InFile : Text;
|
||||
Start,
|
||||
Finish : Integer;
|
||||
InFile : Text;
|
||||
Start : Integer;
|
||||
Finish : Integer;
|
||||
NumLines : Integer;
|
||||
Text : Array[1..mysMaxMsgLines] of String[80];
|
||||
PI1 : String;
|
||||
PI2 : String;
|
||||
Text : Array[1..mysMaxMsgLines] of String[80];
|
||||
PI1 : String;
|
||||
PI2 : String;
|
||||
Begin
|
||||
Assign (InFile, Session.TempPath + 'msgtmp');
|
||||
{$I-} Reset (InFile); {$I+}
|
||||
|
@ -431,6 +481,7 @@ Begin
|
|||
|
||||
For NumLines := Start to Finish Do Begin
|
||||
If TotalLine = mysMaxMsgLines Then Break;
|
||||
|
||||
If Session.Msgs.MsgText[CurLine] <> '' Then Begin
|
||||
Inc (CurLine);
|
||||
InsertLine (CurLine);
|
||||
|
@ -466,15 +517,17 @@ Var
|
|||
|
||||
Procedure UpdateWindow;
|
||||
Var
|
||||
A : Integer;
|
||||
Count : Integer;
|
||||
Begin
|
||||
Session.io.AnsiGotoXY (1, Session.io.ScreenInfo[2].Y);
|
||||
Session.io.AnsiColor (Session.io.ScreenInfo[2].A);
|
||||
Session.io.AnsiGotoXY (1, Session.io.ScreenInfo[2].Y);
|
||||
Session.io.AnsiColor (Session.io.ScreenInfo[2].A);
|
||||
|
||||
For Count := QuoteTopPage to QuoteTopPage + 5 Do Begin
|
||||
If Count <= QuoteLines Then Print (QText[Count]);
|
||||
|
||||
For A := QuoteTopPage to QuoteTopPage + 5 Do Begin
|
||||
If A <= QuoteLines Then Print (QText[A]);
|
||||
Session.io.AnsiClrEOL;
|
||||
If A <= QuoteLines Then PrintLn('');
|
||||
|
||||
If Count <= QuoteLines Then PrintLn('');
|
||||
End;
|
||||
|
||||
UpdateBar(True);
|
||||
|
@ -490,6 +543,7 @@ Begin
|
|||
|
||||
Assign (InFile, Session.TempPath + 'msgtmp');
|
||||
{$I-} Reset(InFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then Exit;
|
||||
|
||||
QuoteLines := 0;
|
||||
|
@ -497,7 +551,7 @@ Begin
|
|||
Scroll := CurLine + 4;
|
||||
|
||||
While Not Eof(InFile) Do Begin
|
||||
Inc (QuoteLines);
|
||||
Inc (QuoteLines);
|
||||
ReadLn (InFile, QText[QuoteLines]);
|
||||
End;
|
||||
|
||||
|
@ -507,9 +561,12 @@ Begin
|
|||
|
||||
If CurY >= Session.io.ScreenInfo[1].Y Then Begin
|
||||
Session.io.AnsiColor(WinText);
|
||||
|
||||
Temp1 := WinEnd;
|
||||
WinEnd := Session.io.ScreenInfo[1].Y;
|
||||
|
||||
TextRefreshFull;
|
||||
|
||||
WinEnd := Temp1;
|
||||
End;
|
||||
|
||||
|
@ -595,7 +652,9 @@ Begin
|
|||
If QuoteTopPage + QuoteCurLine = QuoteLines Then NoMore := True;
|
||||
|
||||
InsertLine (CurLine);
|
||||
|
||||
Session.Msgs.MsgText[CurLine] := QText[QuoteTopPage + QuoteCurLine];
|
||||
|
||||
Inc (CurLine);
|
||||
|
||||
Session.io.AnsiColor(WinText);
|
||||
|
@ -605,10 +664,13 @@ Begin
|
|||
|
||||
If CurLine - Scroll + WinStart + 4 >= WinEnd Then Begin
|
||||
TextRefreshFull;
|
||||
|
||||
Scroll := CurLine;
|
||||
End Else Begin
|
||||
Dec (CurLine);
|
||||
|
||||
TextRefreshPart;
|
||||
|
||||
Inc (CurLine);
|
||||
Inc (CurY);
|
||||
End;
|
||||
|
@ -618,10 +680,13 @@ Begin
|
|||
If QuoteTopPage + QuoteCurLine < QuoteLines Then
|
||||
If QuoteCurLine = 5 Then Begin
|
||||
Inc (QuoteTopPage);
|
||||
|
||||
UpdateWindow;
|
||||
End Else Begin
|
||||
UpdateBar(False);
|
||||
|
||||
Inc (QuoteCurLine);
|
||||
|
||||
UpdateBar(True);
|
||||
End;
|
||||
End;
|
||||
|
@ -688,40 +753,6 @@ Begin
|
|||
Until Done;
|
||||
End;
|
||||
|
||||
Procedure keyPageUp;
|
||||
Begin
|
||||
If CurLine > 1 Then Begin
|
||||
If LongInt(CurLine - (WinEnd - WinStart)) >= 1 Then
|
||||
Dec (CurLine, (WinEnd - WinStart)) {scroll one page up}
|
||||
Else
|
||||
CurLine := 1;
|
||||
|
||||
TextRefreshFull;
|
||||
End;
|
||||
End;
|
||||
|
||||
Procedure keyPageDown;
|
||||
Begin
|
||||
If CurLine < TotalLine Then Begin
|
||||
|
||||
If CurLine + (WinEnd - WinStart) <= TotalLine Then
|
||||
Inc (CurLine, (WinEnd - WinStart))
|
||||
Else
|
||||
CurLine := TotalLine;
|
||||
|
||||
TextRefreshFull;
|
||||
End;
|
||||
End;
|
||||
|
||||
Procedure keyEnd;
|
||||
Begin
|
||||
CurX := Length(Session.Msgs.MsgText[CurLine]) + 1;
|
||||
|
||||
If CurX > WrapPos Then CurX := WrapPos + 1;
|
||||
|
||||
UpdatePosition;
|
||||
End;
|
||||
|
||||
Var
|
||||
A : Integer;
|
||||
Begin
|
||||
|
@ -848,10 +879,6 @@ Begin
|
|||
|
||||
UpdatePosition;
|
||||
End;
|
||||
^W : While (CurX > 1) Do Begin
|
||||
keyBackSpace;
|
||||
If Session.Msgs.MsgText[CurLine][CurX] = ' ' Then Break;
|
||||
End;
|
||||
^U : Begin
|
||||
While CurX < Length(Session.Msgs.MsgText[CurLine]) + 1 Do Begin
|
||||
Inc (CurX);
|
||||
|
@ -865,10 +892,13 @@ Begin
|
|||
UpdatePosition;
|
||||
End;
|
||||
^V : ToggleInsert (True);
|
||||
// ^W : ; // delete word left
|
||||
^W : While (CurX > 1) Do Begin
|
||||
keyBackSpace;
|
||||
If Session.Msgs.MsgText[CurLine][CurX] = ' ' Then Break;
|
||||
End;
|
||||
^X : keyDownArrow;
|
||||
^Y : Begin
|
||||
DeleteLine (curline);
|
||||
DeleteLine (CurLine);
|
||||
TextRefreshPart;
|
||||
End;
|
||||
^[ : Begin
|
||||
|
@ -916,4 +946,4 @@ Begin
|
|||
Session.io.AnsiGotoXY (1, Session.User.ThisUser.ScreenSize);
|
||||
End;
|
||||
|
||||
End.
|
||||
End.
|
|
@ -40,7 +40,6 @@ Procedure Voting_Booth (Forced: Boolean; Num: Integer);
|
|||
Procedure Voting_Result (Data : Integer);
|
||||
Procedure Voting_Booth_New;
|
||||
Procedure View_History (LastDays: Word);
|
||||
Function Check_Node_Message : Boolean;
|
||||
Procedure View_Directory (Data: String; ViewType: Byte);
|
||||
|
||||
Implementation
|
||||
|
@ -892,56 +891,6 @@ Begin
|
|||
End;
|
||||
End;
|
||||
|
||||
Function Check_Node_Message : Boolean;
|
||||
Var
|
||||
Res : Boolean;
|
||||
Str : String;
|
||||
Begin
|
||||
Check_Node_Message := False;
|
||||
Res := False;
|
||||
|
||||
Assign (NodeMsgFile, Session.TempPath + 'chat.tmp');
|
||||
FileMode := 66;
|
||||
{$I-} Reset (NodeMsgFile); {$I+}
|
||||
If IoResult <> 0 Then Exit;
|
||||
|
||||
{ checks for non-teleconference node messages:
|
||||
2 = system broadcast message (ie, not from user, from mystic)
|
||||
3 = user to user node message }
|
||||
|
||||
While Not Eof(NodeMsgFile) Do Begin
|
||||
Res := True;
|
||||
|
||||
Read (NodeMsgFile, NodeMsg);
|
||||
|
||||
Session.io.PromptInfo[1] := NodeMsg.FromWho;
|
||||
Session.io.PromptInfo[2] := strI2S(NodeMsg.FromNode);
|
||||
|
||||
Case NodeMsg.MsgType of
|
||||
2 : Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(179) + NodeMsg.Message);
|
||||
Session.io.OutFullLn (Session.GetPrompt(180));
|
||||
End;
|
||||
3 : Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(144) + '|CR' + NodeMsg.Message);
|
||||
Session.io.OutFull (Session.GetPrompt(145));
|
||||
End;
|
||||
End;
|
||||
End;
|
||||
|
||||
Close (NodeMsgFile);
|
||||
Erase (NodeMsgFile);
|
||||
|
||||
If Res And (NodeMsg.MsgType = 3) Then
|
||||
If Session.io.OneKey(#13 + 'R', True) = 'R' Then Begin
|
||||
Session.io.OutFullLn(Session.GetPrompt(360));
|
||||
Str := Session.io.GetInput(79, 79, 11, '');
|
||||
If Str <> '' Then Send_Node_Message(3, Session.io.PromptInfo[2] + ';' + Str, 0);
|
||||
End;
|
||||
|
||||
Check_Node_Message := Res;
|
||||
End;
|
||||
|
||||
Procedure View_Directory (Data: String; ViewType: Byte);
|
||||
Const
|
||||
vtMaxList = 1000;
|
||||
|
|
|
@ -1460,7 +1460,7 @@ Var
|
|||
ReDraw;
|
||||
End;
|
||||
|
||||
Procedure Add_Char (Ch : Char);
|
||||
Procedure AddChar (Ch : Char);
|
||||
Begin
|
||||
If CurPos > Field then ScrollRight;
|
||||
|
||||
|
@ -1487,8 +1487,13 @@ Begin
|
|||
xPos := Screen.CursorX;
|
||||
FieldCh := ' ';
|
||||
|
||||
// this is poorly implemented but to expand on it will require MPL
|
||||
// programs to change. :( we are stuck at the cap for input types
|
||||
// because of this.
|
||||
|
||||
If Mode > 10 Then Begin
|
||||
Dec (Mode, 10);
|
||||
|
||||
If UseInField and (Graphics = 1) Then Begin
|
||||
FieldCh := TBBSCore(Core).Lang.FieldChar;
|
||||
AnsiColor (TBBSCore(Core).Lang.FieldCol2);
|
||||
|
@ -1523,6 +1528,7 @@ Begin
|
|||
|
||||
Repeat
|
||||
Ch := GetKey;
|
||||
|
||||
If IsArrow Then Begin
|
||||
Case Ch of
|
||||
#71 : If StrPos > 1 Then Begin
|
||||
|
@ -1586,8 +1592,9 @@ Begin
|
|||
Case Ch of
|
||||
#02 : ReDraw;
|
||||
#08 : If StrPos > 1 Then Begin
|
||||
Dec (StrPos);
|
||||
Dec (StrPos);
|
||||
Delete (S, StrPos, 1);
|
||||
|
||||
If CurPos = 1 Then
|
||||
ScrollLeft
|
||||
Else
|
||||
|
@ -1613,44 +1620,45 @@ Begin
|
|||
#32..
|
||||
#254: If Length(S) < Max Then
|
||||
Case Mode of
|
||||
1 : Add_Char (Ch);
|
||||
2 : Add_Char (UpCase(Ch));
|
||||
1 : AddChar (Ch);
|
||||
2 : AddChar (UpCase(Ch));
|
||||
3 : Begin
|
||||
If (CurPos = 1) or (S[StrPos-1] in [' ', '.']) Then
|
||||
Ch := UpCase(Ch)
|
||||
Else
|
||||
Ch := LoCase(Ch);
|
||||
Add_Char(Ch);
|
||||
|
||||
AddChar(Ch);
|
||||
End;
|
||||
4 : If (Ord(Ch) > 47) and (Ord(Ch) < 58) Then
|
||||
Case StrPos of
|
||||
4,8 : Begin
|
||||
Add_Char ('-');
|
||||
Add_Char (Ch);
|
||||
AddChar ('-');
|
||||
AddChar (Ch);
|
||||
End;
|
||||
3,7 : Begin
|
||||
Add_Char (Ch);
|
||||
Add_Char ('-');
|
||||
AddChar (Ch);
|
||||
AddChar ('-');
|
||||
End;
|
||||
Else
|
||||
Add_Char(Ch);
|
||||
AddChar(Ch);
|
||||
End;
|
||||
5 : If (Ord(Ch) > 47) and (Ord(Ch) < 58) Then
|
||||
Case StrPos of
|
||||
2,5 : Begin
|
||||
Add_Char (Ch);
|
||||
Add_Char ('/');
|
||||
AddChar (Ch);
|
||||
AddChar ('/');
|
||||
End;
|
||||
3,6 : Begin
|
||||
Add_Char ('/');
|
||||
Add_Char (Ch);
|
||||
AddChar ('/');
|
||||
AddChar (Ch);
|
||||
End;
|
||||
Else
|
||||
Add_Char (Ch);
|
||||
AddChar (Ch);
|
||||
End;
|
||||
6 : Add_Char(UpCase(Ch));
|
||||
7 : Add_Char(LoCase(Ch));
|
||||
9 : Add_Char(Ch);
|
||||
6 : AddChar(UpCase(Ch));
|
||||
7 : AddChar(LoCase(Ch));
|
||||
9 : AddChar(Ch);
|
||||
End;
|
||||
End;
|
||||
Until False;
|
||||
|
@ -1729,8 +1737,8 @@ Begin
|
|||
End;
|
||||
End;
|
||||
|
||||
Session.io.AnsiColor(Image.CursorA);
|
||||
Session.io.AnsiGotoXY(Image.CursorX, Image.CursorY);
|
||||
Session.io.AnsiColor (Image.CursorA);
|
||||
Session.io.AnsiGotoXY (Image.CursorX, Image.CursorY);
|
||||
|
||||
Session.io.BufFlush;
|
||||
End;
|
||||
|
@ -1761,8 +1769,8 @@ Begin
|
|||
End;
|
||||
End;
|
||||
|
||||
Session.io.AnsiColor(Image.CursorA);
|
||||
Session.io.AnsiGotoXY(Image.CursorX, Image.CursorY);
|
||||
Session.io.AnsiColor (Image.CursorA);
|
||||
Session.io.AnsiGotoXY (Image.CursorX, Image.CursorY);
|
||||
|
||||
Session.io.BufFlush;
|
||||
End;
|
||||
|
@ -1821,4 +1829,4 @@ Begin
|
|||
End;
|
||||
{$ENDIF}
|
||||
|
||||
End.
|
||||
End.
|
|
@ -790,7 +790,7 @@ Begin
|
|||
|
||||
Set_Node_Action (Session.GetPrompt(346));
|
||||
|
||||
Check_Node_Message;
|
||||
CheckNodeMessages;
|
||||
|
||||
Keys := #13;
|
||||
ExtKeys := '';
|
||||
|
|
|
@ -1400,7 +1400,7 @@ Var
|
|||
Ansi_View_Message := False;
|
||||
|
||||
Repeat
|
||||
Check_Node_Message;
|
||||
CheckNodeMessages;
|
||||
|
||||
Set_Node_Action (Session.GetPrompt(348));
|
||||
|
||||
|
@ -1688,7 +1688,7 @@ Var
|
|||
|
||||
Procedure FullReDraw;
|
||||
Begin
|
||||
Check_Node_Message;
|
||||
CheckNodeMessages;
|
||||
|
||||
Session.io.OutFile ('ansimlst', True, 0);
|
||||
|
||||
|
@ -2017,7 +2017,7 @@ end;
|
|||
Session.io.AllowPause := False;
|
||||
|
||||
Repeat
|
||||
Check_Node_Message;
|
||||
CheckNodeMessages;
|
||||
|
||||
Session.io.PromptInfo[1] := strI2S(MsgBase^.GetMsgNum);
|
||||
Session.io.PromptInfo[2] := strI2S(MsgBase^.GetHighMsgNum);
|
||||
|
|
|
@ -8,6 +8,7 @@ Function Is_User_Online (Name : String) : Word;
|
|||
Procedure Set_Node_Action (Action: String);
|
||||
Procedure Show_Whos_Online;
|
||||
Procedure Send_Node_Message (MsgType: Byte; Data: String; Room: Byte);
|
||||
Function CheckNodeMessages : Boolean;
|
||||
|
||||
Implementation
|
||||
|
||||
|
@ -193,4 +194,53 @@ Begin
|
|||
End;
|
||||
End;
|
||||
|
||||
Function CheckNodeMessages : Boolean;
|
||||
Var
|
||||
Str : String;
|
||||
Begin
|
||||
Result := False;
|
||||
FileMode := 66;
|
||||
|
||||
Assign (NodeMsgFile, Session.TempPath + 'chat.tmp');
|
||||
|
||||
{$I-} Reset (NodeMsgFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then Exit;
|
||||
|
||||
// 2 = system broadcast message (ie, not from user, from mystic)
|
||||
// 3 = user to user node message
|
||||
|
||||
While Not Eof(NodeMsgFile) Do Begin
|
||||
Result := True;
|
||||
|
||||
Read (NodeMsgFile, NodeMsg);
|
||||
|
||||
Session.io.PromptInfo[1] := NodeMsg.FromWho;
|
||||
Session.io.PromptInfo[2] := strI2S(NodeMsg.FromNode);
|
||||
|
||||
Case NodeMsg.MsgType of
|
||||
2 : Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(179) + NodeMsg.Message);
|
||||
Session.io.OutFullLn (Session.GetPrompt(180));
|
||||
End;
|
||||
3 : Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(144) + '|CR' + NodeMsg.Message);
|
||||
Session.io.OutFull (Session.GetPrompt(145));
|
||||
End;
|
||||
End;
|
||||
End;
|
||||
|
||||
Close (NodeMsgFile);
|
||||
Erase (NodeMsgFile);
|
||||
|
||||
If Result And (NodeMsg.MsgType = 3) Then
|
||||
If Session.io.OneKey(#13 + 'R', True) = 'R' Then Begin
|
||||
Session.io.OutFullLn(Session.GetPrompt(360));
|
||||
|
||||
Str := Session.io.GetInput(79, 79, 11, '');
|
||||
|
||||
If Str <> '' Then Send_Node_Message(3, Session.io.PromptInfo[2] + ';' + Str, 0);
|
||||
End;
|
||||
End;
|
||||
|
||||
End.
|
||||
|
|
Loading…
Reference in New Issue