瀏覽代碼

Quick.Console MACOS compatibility

Unknown 6 年之前
父節點
當前提交
ef68cb828a
共有 1 個文件被更改,包括 17 次插入17 次删除
  1. 17 17
      Quick.Console.pas

+ 17 - 17
Quick.Console.pas

@@ -7,7 +7,7 @@
   Author      : Kike Pérez
   Version     : 1.9
   Created     : 10/05/2017
-  Modified    : 17/02/2019
+  Modified    : 29/03/2019
 
   This file is part of QuickLib: https://github.com/exilon/QuickLib
 
@@ -57,7 +57,7 @@ uses
     crt,
     {$ENDIF}
   {$ENDIF}
-  {$IFDEF DELPHILINUX}
+  {$IF Defined(DELPHILINUX) OR Defined(MACOS)}
   Quick.SyncObjs.Linux.Compatibility,
   Posix.StdDef,
   {$ENDIF}
@@ -118,8 +118,8 @@ type
   TOutputProc<T> = procedure(const aLine : T) of object;
   TExecuteProc = procedure of object;
   {$ENDIF}
-  {$IF DEFINED(FPCLINUX) OR DEFINED(DELPHILINUX)}
-    {$IFDEF DELPHILINUX}
+  {$IF DEFINED(FPCLINUX) OR DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
+    {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
     tcrtcoord = Byte;
     {$ENDIF}
   TCoord = record
@@ -192,7 +192,7 @@ type
   procedure ClearLine(Y : Integer); overload;
   procedure ShowCursor;
   procedure HideCursor;
-  {$IFDEF DELPHILINUX}
+  {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
   procedure SaveCursor;
   procedure RestoreCursor;
   procedure CursorOn;
@@ -235,7 +235,7 @@ var
 implementation
 
 
-{$IFDEF DELPHILINUX}
+{$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
 const
   AEC =chr($1B)+chr($5b);
   SAVE_CURSOR_POS = chr($1B) + '7';
@@ -326,7 +326,7 @@ begin
   cout(Format(cMsg,params),cEventType);
 end;
 
-{$IFDEF DELPHILINUX}
+{$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
 procedure SaveCursor;
 begin
   write(SAVE_CURSOR_POS);
@@ -400,7 +400,7 @@ begin
 end;
 {$ENDIF}
 
-{$IFDEF DELPHILINUX}
+{$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
 procedure GotoXY(x,y : Integer);
 begin
   Write(AEC, y, ';', x, 'H');
@@ -433,7 +433,7 @@ begin
   {$IFDEF MSWINDOWS}
   if hStdOut = 0 then Exit;
   {$ENDIF}
-  {$IFNDEF DELPHILINUX}
+  {$IF NOT DEFINED(DELPHILINUX) AND NOT DEFINED(MACOS)}
   LastCoord.X := GetCursorX;
   LastCoord.Y := GetCursorY;
   {$ELSE}
@@ -462,7 +462,7 @@ begin
   {$IFDEF MSWINDOWS}
   if hStdOut = 0 then Exit;
   {$ENDIF}
-  {$IFNDEF DELPHILINUX}
+  {$IF NOT DEFINED(DELPHILINUX) AND NOT DEFINED(MACOS)}
   LastCoord.X := GetCursorX;
   LastCoord.Y := GetCursorY;
   {$ELSE}
@@ -531,7 +531,7 @@ begin
   TextAttr := (TextAttr and $F0) or (Color and $0F);
   if TextAttr <> LastMode then SetConsoleTextAttribute(hStdOut, TextAttr);
   {$ELSE}
-    {$IFDEF DELPHILINUX}
+    {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
     write(AEC,';',Color,'m')
     {$ELSE}
     crt.TextColor(Color);
@@ -552,7 +552,7 @@ begin
   TextAttr := (TextAttr and $0F) or ((Color shl 4) and $F0);
   if TextAttr <> LastMode then SetConsoleTextAttribute(hStdOut, TextAttr);
   {$ELSE}
-    {$IFDEF DELPHILINUX}
+    {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
     write(AEC,0,';',Color+10*10);
     {$ELSE}
     crt.TextBackground(Color);
@@ -611,7 +611,7 @@ begin
 end;
 {$ELSE}
 begin
-  {$IFDEF DELPHILINUX}
+  {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
   write(AEC,2,'J');
   {$ELSE}
   ClrScr;
@@ -621,7 +621,7 @@ end;
 
 procedure ClearLine;
 begin
-  {$IFNDEF DELPHILINUX}
+  {$IF NOT DEFINED(DELPHILINUX) AND NOT DEFINED(MACOS)}
   ClearLine(GetCursorY);
   {$ELSE}
   write(AEC,'K');
@@ -644,7 +644,7 @@ end;
 {$ELSE}
 begin
   GotoXY(1,Y);
-  {$IFDEF DELPHILINUX}
+  {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
   write(AEC,'K');
   {$ELSE}
   DelLine;
@@ -1061,11 +1061,11 @@ Console.LogVerbose := LOG_ALL;
 {$IF DEFINED(FPC) AND DEFINED(LINUX)}
 InitCriticalSection(CSConsole);
 {$ELSE}
-  {$IFNDEF DELPHILINUX}
+  {$IF NOT DEFINED(DELPHILINUX) AND NOT DEFINED(MACOS)}
   InitializeCriticalSection(CSConsole);
   //init stdout if not a service
   try
-    if GetStdHandle(STD_OUTPUT_HANDLE) <> 0 then InitConsole;
+    if HasConsoleOutput then InitConsole;
   except
     //avoid raise exception
   end;