|
@@ -6,7 +6,7 @@ CONST
|
|
partH = 256;
|
|
partH = 256;
|
|
emptyCh = ' ';
|
|
emptyCh = ' ';
|
|
nofcolors = 16;
|
|
nofcolors = 16;
|
|
- cursorTickSpeed = 1.0;
|
|
|
|
|
|
+ cursorTickSpeed = 4.0;
|
|
stdW = 80;
|
|
stdW = 80;
|
|
stdH = 25;
|
|
stdH = 25;
|
|
|
|
|
|
@@ -287,7 +287,7 @@ VAR
|
|
cursorTimer: G.Timer; (* Text cursor tick timer *)
|
|
cursorTimer: G.Timer; (* Text cursor tick timer *)
|
|
userTimer: G.Timer; (* User timer set by StartTimer *)
|
|
userTimer: G.Timer; (* User timer set by StartTimer *)
|
|
|
|
|
|
- needFlip: BOOLEAN;
|
|
|
|
|
|
+ needFlip: INTEGER;
|
|
screen: G.Window;
|
|
screen: G.Window;
|
|
font: G.MonoFont;
|
|
font: G.MonoFont;
|
|
colors: ARRAY nofcolors OF G.Color;
|
|
colors: ARRAY nofcolors OF G.Color;
|
|
@@ -403,9 +403,11 @@ END UpdateCell;
|
|
|
|
|
|
PROCEDURE Flip(forse: BOOLEAN);
|
|
PROCEDURE Flip(forse: BOOLEAN);
|
|
BEGIN
|
|
BEGIN
|
|
- IF ~G.HasEvents() OR forse THEN
|
|
|
|
- G.Flip; needFlip := FALSE
|
|
|
|
- ELSE needFlip := TRUE
|
|
|
|
|
|
+ IF ~G.HasEvents() OR forse OR (needFlip > 4) THEN
|
|
|
|
+ G.Flip; needFlip := 0
|
|
|
|
+ ;Out.String('ОБНОВЛЕНИЕ');Out.Ln
|
|
|
|
+ ELSE INC(needFlip)
|
|
|
|
+ ;Out.String(' отложено');Out.Ln
|
|
END
|
|
END
|
|
END Flip;
|
|
END Flip;
|
|
|
|
|
|
@@ -535,7 +537,9 @@ BEGIN
|
|
UpdateCell(curX, curY);
|
|
UpdateCell(curX, curY);
|
|
Flush
|
|
Flush
|
|
END;
|
|
END;
|
|
- IF needFlip THEN G.Flip; needFlip := FALSE END
|
|
|
|
|
|
+ IF needFlip # 0 THEN G.Flip; needFlip := 0
|
|
|
|
+ ;Out.String(' По таймеру');Out.Ln
|
|
|
|
+ END
|
|
ELSE
|
|
ELSE
|
|
event.type := timer
|
|
event.type := timer
|
|
END
|
|
END
|
|
@@ -569,6 +573,10 @@ END ParseEvent;
|
|
PROCEDURE WaitAndParseEvent(VAR event: Event);
|
|
PROCEDURE WaitAndParseEvent(VAR event: Event);
|
|
VAR E: G.Event;
|
|
VAR E: G.Event;
|
|
BEGIN
|
|
BEGIN
|
|
|
|
+ IF (needFlip # 0) & ~G.PeekEvent(E) THEN
|
|
|
|
+ G.Flip; needFlip := 0
|
|
|
|
+ ;Out.String(' По ожиданию');Out.Ln
|
|
|
|
+ END;
|
|
G.WaitEvent(E);
|
|
G.WaitEvent(E);
|
|
ParseEvent(E, event)
|
|
ParseEvent(E, event)
|
|
END WaitAndParseEvent;
|
|
END WaitAndParseEvent;
|
|
@@ -814,7 +822,7 @@ BEGIN Done := FALSE;
|
|
InitBuffer;
|
|
InitBuffer;
|
|
InitTimer;
|
|
InitTimer;
|
|
mouseDown := FALSE;
|
|
mouseDown := FALSE;
|
|
- needFlip := FALSE;
|
|
|
|
|
|
+ needFlip := 0;
|
|
processingEvent := FALSE;
|
|
processingEvent := FALSE;
|
|
Done := TRUE
|
|
Done := TRUE
|
|
END
|
|
END
|