home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
turbo5
/
mcvars.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1988-10-09
|
5KB
|
195 lines
{ Copyright (c) 1985, 87 by Borland International, Inc. }
unit MCVARS;
interface
uses Crt;
{$IFOPT N+}
type
Real = Extended;
const
EXPLIMIT = 11356;
SQRLIMIT = 1E2466;
MAXPLACES = 8;
MAXEXPLEN = 4;
{$ELSE}
const
EXPLIMIT = 88;
SQRLIMIT = 1E18;
MAXPLACES = 4;
MAXEXPLEN = 3;
{$ENDIF}
const
MSGHEADER = 'MicroCalc - ein Turbo Pascal-Demonstrationsprogramm';
MSGKEYPRESS = 'Jeder Tastendruck -> Weiter';
MSGCOMMAND = '"/" -> Kommandos, F2 -> Edit';
MSGMEMORY = 'Freier Speicher:';
MSGLOMEM = 'Kein Platz für diese Zelle im Speicher!';
MSGERRORTXT = 'FEHLER';
MSGEMPTY = 'Leer';
MSGTEXT = 'Text';
MSGVALUE = 'Wert';
MSGFORMULA = 'Formel';
MSGAUTOCALC = 'AutoCalc';
MSGFORMDISPLAY = 'Form';
MSGFILENAME = 'Geben Sie den Namen des Rechenblattes ein:';
MSGNAME = 'MicroCalc Rechenblatt';
MSGCOLWIDTH = 'Neue Spaltenbreite:';
MSGNOOPEN = 'Fehler beim Öffnen der Datei.';
MSGOVERWRITE = 'Datei existiert bereits. Überschreiben?';
MSGFILELOMEM = 'Nicht genug Speicherplatz für das gesamte Rechenblatt.';
MSGNOMICROCALC = 'Diese Datei ist kein MicroCalc-Rechenblatt.';
MSGBADREALS = 'Die Realzahlen in dieser Datei haben ein anderes Format.';
MSGNOEXIST = 'Datei nicht gefunden.';
MSGGOTO = 'Eingabe der Zelladresse:';
MSGBADNUMBER = 'Zulässiger Bereich der Eingabe ist';
MSGBADCELL = 'Hmm - das ist keine gültige Zelladresse';
MSGCELL1 = 'Adresse der ersten zu formatierenden Zelle:';
MSGCELL2 = 'Adresse der letzten zu formatierenden Zelle:';
MSGDIFFCOLROW = 'Entweder Spalten- oder Reihennummer müssen gleich sein';
MSGRIGHTJUST = 'Rechtsbündige Darstellung?';
MSGDOLLAR = 'Zahlenwerte im Währungsformat?';
MSGCOMMAS = 'Kommas nach jeder dritten Dezimalstelle?';
MSGPLACES = 'Wieviele Stellen nach dem Komma sollen ausgegeben werden?';
MSGCOLUMNS = 'Ausgabe mit 132 Zeichen Breite (Standard = 80)?';
MSGPRINT = 'Name der Druck-Datei (nur ENTER -> Ausgabe auf den Drucker):';
MSGBORDER = 'Reihen/Spaltennummern ebenfalls ausgeben?';
MSGLOADING = 'Rechenblatt wird geladen...';
MSGSAVING = 'Rechenblatt wird gespeichert...';
MSGSAVESHEET = 'Rechenblatt speichern?';
MSGSTACKERROR = 'Stack-Überlauf bei der Formelauswertung.';
MNU = 'Rechenblatt Format Löschen Goto Spalte Zeile Edit Diverses Auto Beenden';
COMMAND = 'RFLGSZEDAB'#27;
SMNU = 'Laden Speichern Drucken Neu';
SCOMMAND = 'LSDN';
CMNU = 'Einfügen Löschen Breite';
CCOMMAND = 'ELB';
RMNU = 'Einfügen Löschen';
RCOMMAND = 'EL';
UMNU = 'Neuberechnen Formel-Darstellung an/aus Bildschirmzeilen 43/25';
UCOMMAND = 'NFB';
MAXCOLS = 100; { MAXCOLS * MAXROWS sollte <= 10000 sein }
MAXROWS = 100;
LEFTMARGIN = 3;
MINCOLWIDTH = 3;
MAXCOLWIDTH = 77;
SCREENCOLS = 26;
DEFAULTWIDTH = 10;
DEFAULTFORMAT = $42;
MAXINPUT = 79;
TOPMARGIN = 5;
PARSERSTACKSIZE = 20;
TXTCOLOR = White;
ERRORCOLOR = 140; { Hellrot + blinkend }
VALUECOLOR = LightCyan;
FORMULACOLOR = LightMagenta;
BLANKCOLOR = Black;
HEADERCOLOR = 79; { Weiß mit rotem Hintergrund }
HIGHLIGHTCOLOR = 31; { Weiß mit blauem Hintergrund }
HIGHLIGHTERRORCOLOR = 159; { Weiß, blinkend mit blauem Hintergrund }
MSGAUTOCALCCOLOR = LightCyan;
MSGFORMDISPLAYCOLOR = LightMagenta;
MSGMEMORYCOLOR = LightGreen;
MSGHEADERCOLOR = LightCyan;
PROMPTCOLOR = Yellow;
COMMANDCOLOR = LightCyan;
LOWCOMMANDCOLOR = White;
MEMORYCOLOR = LightRed;
CELLTYPECOLOR = LightGreen;
CELLCONTENTSCOLOR = Yellow;
HIGHLIGHT = True;
NOHIGHLIGHT = False;
UPDATE = True;
NOUPDATE = False;
DOFORMAT = True;
NOFORMAT = False;
LEFT = 0;
RIGHT = 1;
UP = 2;
DOWN = 3;
TXT = 0;
VALUE = 1;
FORMULA = 2;
COLADD = 0;
COLDEL = 1;
ROWADD = 2;
ROWDEL = 3;
OVERWRITE = $80;
RJUSTIFY = $40;
COMMAS = $20;
DOLLAR = $10;
LETTERS : set of Char = ['A'..'Z', 'a'..'z'];
NULL = #0;
BS = #8;
FORMFEED = #12;
CR = #13;
ESC = #27;
HOMEKEY = #199;
ENDKEY = #207;
UPKEY = #200;
DOWNKEY = #208;
PGUPKEY = #201;
PGDNKEY = #209;
LEFTKEY = #203;
INSKEY = #210;
RIGHTKEY = #205;
DELKEY = #211;
CTRLLEFTKEY = #243;
CTRLRIGHTKEY = #244;
F1 = #187;
F2 = #188;
F3 = #189;
F4 = #190;
F5 = #191;
F6 = #192;
F7 = #193;
F8 = #194;
F9 = #195;
F10 = #196;
type
IString = String[MAXINPUT];
CellRec = record { eine Zelle }
Error : Boolean;
case Attrib : Byte of { varianter Teil: }
TXT : (T : IString); { Text }
VALUE : (Value : Real); { Wert }
FORMULA : (Fvalue : Real; { Formel (mit Ergebnis) }
Formula : IString);
end;
CellPtr = ^CellRec;
var
Cell : array [1..MAXCOLS, 1..MAXROWS] of CellPtr;
CurCell : CellPtr;
Format : array [1..MAXCOLS, 1..MAXROWS] of Byte;
ColWidth : array [1..MAXCOLS] of Byte;
ColStart : array [1..SCREENCOLS] of Byte;
LeftCol, RightCol, TopRow, BottomRow, CurCol, CurRow, LastCol,
LastRow : Word;
Changed, FormDisplay, AutoCalc, Stop, ColorCard : Boolean;
ColorTable : array [0..255] of Byte;
ScreenRows : Byte;
OldMode : Word;
UMenuString : String[80];
UCommandString : String[3];
implementation
begin
end.