Crt/de

From Lazarus wiki
Jump to navigationJump to search

Deutsch (de) English (en)

Unit Crt

Vorwort

Die Unit Crt bietet eine komfortable Textausgabe auf der Text-Konsole. Auch bietet sie komfortable Tastatur-Eingabe. Der Ursprung der Unit kommt von Turbo-Pascal. Je nach OS wird die Text-Ausgabe welche mit Write/Writeln ausgeführt wird stark beschleunigt.

Wichtigste Features der Unit:

  • Farbige Text-Ausgabe.
  • Text-Ausgabe beschleunigen ( OS abhängig ).
  • Cursor positionieren.
  • Einen Fenster-Bereich festlegen.
  • Tastatur-Abfrage.
  • Ton-Ausgabe ( OS abhängig ).

Die wichtigsten Befehle

Text-Ausgabe

Window

Legt einen Bereich fest, in dem die Ausgabe erfolgt.

Window(10, 5, 70, 10);


GotoXY

Positioniert den Cursor, im Beispiel Spalte 10, Zeile 5. Links-Oben ist 1,1.

GotoXY(10, 5);

WhereX

Fragt die Spalte ab, in dem sich der Cursor befindet.

WhereY

Fragt die Zeile ab, in dem sich der Cursor befindet.

ClrScr

Löschen den Bildschirm / Fenster, welches mit Windows festgelegt wurde.

TextColor

Legt die Farbe der Schrift fest.

TextColor(Green); // Grüne Schrift

Für die Farben sind folgende Konstanten vordefiniert:

const
// Vordergrund / Hintegergrund-Farben
  Black         =  0;
  Blue          =  1;
  Green         =  2;
  Cyan          =  3;
  Red           =  4;
  Magenta       =  5;
  Brown         =  6;
  LightGray     =  7;

// Zusätzliche Vordergrund Farben
  DarkGray      =  8;
  LightBlue     =  9;
  LightGreen    = 10;
  LightCyan     = 11;
  LightRed      = 12;
  LightMagenta  = 13;
  Yellow        = 14;
  White         = 15;  

// Spezial
  Blink         = 128;

TextBackground

Legt die Hintergrund-Farbe der Schrift fest. Beim Aufruf von ClrSrc wird der Bildschirm/Fenster mit dieser Farbe eingefärbt.

TextBackground(Red); // Roter Hintergrund

TextAttr

Über diesen Bezeichner kann man direkt das Attribut auslesen und schreiben.

LowVideo

Die Farbe der Schrift wird auf Low gesetzt.

HighVideo

Die Farbe der Schrift wird auf High gesetzt.

NormVideo

Die Schrift wird auf Standard-Grau gesetzt.

InsLine

Eine Zeile bei Cursorposition einfügen.

DelLine

Die Zeile bei Cursorposition löschen.

Beispiel Text-Ausgabe

var
  i: integer;
begin
  Window(10, 5, 30, 20);   // Fenstergrösse festlegen
  TextBackground(Red);     // Hintergrund-Farbe (Rot)
  ClrScr;                  // Fenster löschen
  for i := 1 to 8 do begin
    GotoXY(i, i);          // Cursor positionieren
    TextColor(i + 8);      // Text-Farbe festlegen
    Write('Hello World');
  end;
  repeat
  until KeyPressed;        // Bei Tastendruck Programm beenden
end.

Tastatur-Eingabe

ReadKey

ReadKey holt ein Zeichen aus dem Tastatur-Puffer. Achtung, bei Funktions-Tasten müssen 2 Zeichen abgeholt werden, dabei ist das erste Zeichen ein #0. Dies betrifft F-Tasten, Pfeil-Tasten, etc.

KeyPressed

Prüft, ob eine Taste gedrückt wurde.

Beispiel Tastatur

var
  ch: Char;
begin
  repeat
  until KeyPressed;     // Warten, bis eine Taste gedrückt.
  ch := ReadKey;
  if ch = #0 then begin // Funktionstaste
    ch := ReadKey;
  end;
end.

Hinweis: KeyPressed holt keine Zeichen ab, dies muss mit ReadKey geschehen.

Ton-Ausgabe

Light bulb  Hinweis: Funktioniert nicht auf allen Plattformen.

Sound

Gibt einen Ton in Hz aus.

Sound(1000); // 1'000Hz

NoSound

Haltet die Ton-Ausgabe an.

Delay

Verzögerung in MS.

Sound(1000); // 1'000s verweilen

Beispiel Ton-Ausgabe

begin
  Sound(1000); // 1'000 Herz
  Delay(1000); // 1 Sekunde verzögern.
  NoSound;     // Ton absellen
end.

Autor: Mathias