home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / turbo4 / mcvars.pas < prev    next >
Pascal/Delphi Source File  |  1987-12-08  |  5KB  |  195 lines

  1.  
  2. {           Copyright (c) 1985, 87 by Borland International, Inc.            }
  3.  
  4. unit MCVARS;
  5.  
  6. interface
  7.  
  8. uses Crt;
  9.  
  10. {$IFOPT N+}
  11.  
  12. type
  13.   Real = Extended;
  14.  
  15. const
  16.   EXPLIMIT = 11356;
  17.   SQRLIMIT = 1E2466;
  18.   MAXPLACES = 8;
  19.   MAXEXPLEN = 4;
  20.  
  21. {$ELSE}
  22.  
  23. const
  24.   EXPLIMIT = 88;
  25.   SQRLIMIT = 1E18;
  26.   MAXPLACES = 4;
  27.   MAXEXPLEN = 3;
  28.  
  29. {$ENDIF}
  30.  
  31. const
  32.   MSGHEADER = 'MicroCalc - ein Turbo Pascal-Demonstrationsprogramm';
  33.   MSGKEYPRESS = 'Jeder Tastendruck -> Weiter';
  34.   MSGCOMMAND = '"/" -> Kommandos, F2 -> Edit';
  35.   MSGMEMORY = 'Freier Speicher:';
  36.   MSGLOMEM = 'Kein Platz für diese Zelle im Speicher!';
  37.   MSGERRORTXT = 'FEHLER';
  38.   MSGEMPTY = 'Leer';
  39.   MSGTEXT = 'Text';
  40.   MSGVALUE = 'Wert';
  41.   MSGFORMULA = 'Formel';
  42.   MSGAUTOCALC = 'AutoCalc';
  43.   MSGFORMDISPLAY = 'Form';
  44.   MSGFILENAME = 'Geben Sie den Namen des Rechenblattes ein:';
  45.   MSGNAME = 'MicroCalc Rechenblatt';
  46.   MSGCOLWIDTH = 'Neue Spaltenbreite:';
  47.   MSGNOOPEN = 'Fehler beim Öffnen der Datei.';
  48.   MSGOVERWRITE = 'Datei existiert bereits. Überschreiben?';
  49.   MSGFILELOMEM = 'Nicht genug Speicherplatz für das gesamte Rechenblatt.';
  50.   MSGNOMICROCALC = 'Diese Datei ist kein MicroCalc-Rechenblatt.';
  51.   MSGBADREALS = 'Die Realzahlen in dieser Datei haben ein anderes Format.';
  52.   MSGNOEXIST = 'Datei nicht gefunden.';
  53.   MSGGOTO = 'Eingabe der Zelladresse:';
  54.   MSGBADNUMBER = 'Zulässiger Bereich der Eingabe ist';
  55.   MSGBADCELL = 'Hmm - das ist keine gültige Zelladresse';
  56.   MSGCELL1 = 'Adresse der ersten zu formatierenden Zelle:';
  57.   MSGCELL2 = 'Adresse der letzten zu formatierenden Zelle:';
  58.   MSGDIFFCOLROW = 'Entweder Spalten- oder Reihennummer müssen gleich sein';
  59.   MSGRIGHTJUST = 'Rechtsbündige Darstellung?';
  60.   MSGDOLLAR = 'Zahlenwerte im Währungsformat?';
  61.   MSGCOMMAS = 'Kommas nach jeder dritten Dezimalstelle?';
  62.   MSGPLACES = 'Wieviele Stellen nach dem Komma sollen ausgegeben werden?';
  63.   MSGCOLUMNS = 'Ausgabe mit 132 Zeichen Breite (Standard = 80)?';
  64.   MSGPRINT = 'Name der Druck-Datei (nur ENTER -> Ausgabe auf den Drucker):';
  65.   MSGBORDER = 'Reihen/Spaltennummern ebenfalls ausgeben?';
  66.   MSGLOADING = 'Rechenblatt wird geladen...';
  67.   MSGSAVING = 'Rechenblatt wird gespeichert...';
  68.   MSGSAVESHEET = 'Rechenblatt speichern?';
  69.   MSGSTACKERROR = 'Stack-Überlauf bei der Formelauswertung.';
  70.  
  71.   MNU = 'Rechenblatt Format Löschen Goto Spalte Zeile Edit Diverses Auto Beenden';
  72.   COMMAND = 'RFLGSZEDAB'#27;
  73.   SMNU = 'Laden Speichern Drucken Neu';
  74.   SCOMMAND = 'LSDN';
  75.   CMNU = 'Einfügen Löschen Breite';
  76.   CCOMMAND = 'ELB';
  77.   RMNU = 'Einfügen Löschen';
  78.   RCOMMAND = 'EL';
  79.   UMNU = 'Neuberechnen Formel-Darstellung an/aus Bildschirmzeilen 43/25';
  80.   UCOMMAND = 'NFB';
  81.  
  82.   MAXCOLS = 100;     { MAXCOLS * MAXROWS sollte <= 10000 sein }
  83.   MAXROWS = 100;
  84.   LEFTMARGIN = 3;
  85.   MINCOLWIDTH = 3;
  86.   MAXCOLWIDTH = 77;
  87.   SCREENCOLS = 26;
  88.   DEFAULTWIDTH = 10;
  89.   DEFAULTFORMAT = $42;
  90.   MAXINPUT = 79;
  91.   TOPMARGIN = 5;
  92.   PARSERSTACKSIZE = 20;
  93.  
  94.   TXTCOLOR = White;
  95.   ERRORCOLOR = 140;  { Hellrot + blinkend }
  96.   VALUECOLOR = LightCyan;
  97.   FORMULACOLOR = LightMagenta;
  98.   BLANKCOLOR = Black;
  99.   HEADERCOLOR = 79;  { Weiß mit rotem Hintergrund }
  100.   HIGHLIGHTCOLOR = 31;  { Weiß mit blauem Hintergrund }
  101.   HIGHLIGHTERRORCOLOR = 159; { Weiß, blinkend mit blauem Hintergrund }
  102.   MSGAUTOCALCCOLOR = LightCyan;
  103.   MSGFORMDISPLAYCOLOR = LightMagenta;
  104.   MSGMEMORYCOLOR = LightGreen;
  105.   MSGHEADERCOLOR = LightCyan;
  106.   PROMPTCOLOR = Yellow;
  107.   COMMANDCOLOR = LightCyan;
  108.   LOWCOMMANDCOLOR = White;
  109.   MEMORYCOLOR = LightRed;
  110.   CELLTYPECOLOR = LightGreen;
  111.   CELLCONTENTSCOLOR = Yellow;
  112.  
  113.   HIGHLIGHT = True;
  114.   NOHIGHLIGHT = False;
  115.   UPDATE = True;
  116.   NOUPDATE = False;
  117.   DOFORMAT = True;
  118.   NOFORMAT = False;
  119.   LEFT = 0;
  120.   RIGHT = 1;
  121.   UP = 2;
  122.   DOWN = 3;
  123.   TXT = 0;
  124.   VALUE = 1;
  125.   FORMULA = 2;
  126.   COLADD = 0;
  127.   COLDEL = 1;
  128.   ROWADD = 2;
  129.   ROWDEL = 3;
  130.   OVERWRITE = $80;
  131.   RJUSTIFY = $40;
  132.   COMMAS = $20;
  133.   DOLLAR = $10;
  134.   LETTERS : set of Char = ['A'..'Z', 'a'..'z'];
  135.  
  136.   NULL = #0;
  137.   BS = #8;
  138.   FORMFEED = #12;
  139.   CR = #13;
  140.   ESC = #27;
  141.   HOMEKEY = #199;
  142.   ENDKEY = #207;
  143.   UPKEY = #200;
  144.   DOWNKEY = #208;
  145.   PGUPKEY = #201;
  146.   PGDNKEY = #209;
  147.   LEFTKEY = #203;
  148.   INSKEY = #210;
  149.   RIGHTKEY = #205;
  150.   DELKEY = #211;
  151.   CTRLLEFTKEY = #243;
  152.   CTRLRIGHTKEY = #244;
  153.   F1 = #187;
  154.   F2 = #188;
  155.   F3 = #189;
  156.   F4 = #190;
  157.   F5 = #191;
  158.   F6 = #192;
  159.   F7 = #193;
  160.   F8 = #194;
  161.   F9 = #195;
  162.   F10 = #196;
  163.  
  164. type
  165.   IString = String[MAXINPUT];
  166.   CellRec = record             { eine Zelle }
  167.     Error : Boolean;
  168.     case Attrib : Byte of      { varianter Teil: }
  169.       TXT : (T : IString);                 { Text }
  170.       VALUE : (Value : Real);              { Wert }
  171.       FORMULA : (Fvalue : Real;            { Formel (mit Ergebnis) }
  172.                  Formula : IString);
  173.   end;
  174.   CellPtr = ^CellRec;
  175.  
  176. var
  177.   Cell : array [1..MAXCOLS, 1..MAXROWS] of CellPtr;
  178.   CurCell : CellPtr;
  179.   Format : array [1..MAXCOLS, 1..MAXROWS] of Byte;
  180.   ColWidth : array [1..MAXCOLS] of Byte;
  181.   ColStart : array [1..SCREENCOLS] of Byte;
  182.   LeftCol, RightCol, TopRow, BottomRow, CurCol, CurRow, LastCol,
  183.     LastRow : Word;
  184.   Changed, FormDisplay, AutoCalc, Stop, ColorCard : Boolean;
  185.   ColorTable : array [0..255] of Byte;
  186.   ScreenRows : Byte;
  187.   OldMode : Word;
  188.   UMenuString : String[80];
  189.   UCommandString : String[3];
  190.  
  191. implementation
  192.  
  193. begin
  194. end.
  195.