Zum Navigations-Menü
Kein Layout? Lesen Sie hier, warum...

Webplain.de Infosite

Farben und Auflösungen


Webplain.de » Turbo Pascal » Farben und Auflösungen

Turbo Pascal - Farben und Auflösungen

Haben Sie die Nase voll vom grau-schwarzen DOS-Alltag? Dann bringen Sie Farbe in Ihre TP-Programme. Die folgenden Angaben beziehen sich nicht auf den Grafik-, sondern (fast) nur auf den ASCII-Modus von Pascal. Ausgenommen sind die Integer-Werte der Farben.
Die Text-Auflösung beträgt standardmäßig 80 x 25 Zeichen. Mit dem Aufruf textmode(co80 + font8x8); lässt sich die Zeichen-Matrix auf 8 x 8 Pixel umstellen (statt 8 x 16 Pixel), was eine Verdoppelung der Zeilenzahl auf 50 (VGA) bzw. 43 (EGA) bewirkt.

VGA-Auflösung 80x25 Zeichen

Mit dem Befehl gotoxy(x,y) kann man den Text-Cursor in diesem Raster setzen, indem man für x und y in der Klammer Werte eingibt.
gotoxy(1,1) zum Beispiel setzt den Cursor links oben in die Ecke, gotoxy(80,25) dagegen nach ganz rechts unten.

Bei Farben unterscheidet man in TP die Vorder- und Hintergrundfarbe. Der Befehl textcolor aus der Unit Crt legt eine von 16 möglichen Farben für den nachfolgend auszugebenden Text mit 4 Bits fest (siehe Tabelle).
Der Befehl textbackground tut dies mit 3 Bits für eine von 8 möglichen Hintergrundfarben. Das 8. Bit (B7) steht für blinkenden Text.

BackgroundTextColorFarbe
B7B6B5B4B3B2B1B0
1286432168421
B

L

I

N

K
000000000black
1600100011blue
3201000102green
4801100113cyan
6410001004red
8010101015magenta
9611001106brown
11211101117light gray
10008dark gray
10019light blue
101010light green
101111light cyan
110012light red
110113light magenta
111014yellow
111115white

In der Unit Crt ist eine Variable namens TextAttr als Byte deklariert. Sie enthält das entsprechende Zeichenattribut für den nachfolgenden Text.

textattr := 159;
write('Hallo');

hat also den selben Effekt wie

textbackground(1);
textcolor(white + blink);
write('Hallo');

nämlich weißen blinkenden Text auf blauem Hintergrund. Die 159 entsteht dabei durch das Addieren der 3. Tabellenzeile für die entsprechenden Bits der gewünschten Farben (159 = 1 + 2 + 4 + 8 + 16 + 128).

Kommentare

Es gibt 15 Kommentare zu »Farben und Auflösungen«.
Neuen Kommentar posten...

1 Am 18. Mär. 2003 schrieb Günter Venohr:

Warum wird nicht in diesem Zusammenhang auf TEXTATTR  verwiesen ?
Info:
Hintergrundfarbe :=Textattr Div 16;
Schreibfarbe:=Textattr MOD 16;

Setzen:
Textattr:=(Hintergrundfarbe(0..7)*16)+Schreibfarbe(0..15)

Gruss Günter

2 Am 20. Apr. 2004 schrieb Stefan:

Hi leute mein blödes tp teil jeckt das blinken mit 'blink' und 'textattr'überhaupt nicht kann machen wass ich will!!! es iebt den Text einfach nur so Aus!!! also leute kann mir bitte jemand Helfen

3 Am 22. Mär. 2005 schrieb De_little_Bubi:

Dort oben im Text steht:
nachfolgend auszugebenden Text mit 3 Bits fest (siehe Tabelle).
Der Befehl textbackground tut dies mit 4 Bits für eine von 8 möglichen

Müsste es nicht so heissen:
nachfolgend auszugebenden Text mit 4 Bits fest (siehe Tabelle).
Der Befehl textbackground tut dies mit 3 Bits für eine von 8 möglichen

Die anzahl der Bits für Textfarbe und Hintergrundfarbe wurden vertauscht.

4 Am 22. Mär. 2005 schrieb Clemens Weiß:

Danke für den Hinweis, wird korrigiert.

5 Am 14. Apr. 2005 schrieb Samweis:

Kannst du noch ne Erläuterung für die Tabelle anfügen? Ich versteh die nicht wirklich.

6 Am 05. Sep. 2005 schrieb Gunnar:

Hallo!
Beide Befehle einmal mit "Textattr" und dem umständlicheren weg über "Textcolor" funktionieren bei mir nicht -.-
Kann mir jemand sagen woran das liegt???

LG Gunnar

7 Am 20. Okt. 2005 schrieb Patrick:

Jop liegt dadran dass du "uses crt" vergessen hast

8 Am 12. Sep. 2006 schrieb Luis:

Also das ist ja alles ganz klasse was ihr hier macht
aber leider versteh ich das alles nicht.
ich habe jetzt pascal neu in der schule bekommen und würde mir gerne einen bunten hintergrung machen.
könnt iht nicht eimal die dinge in einem zusammenhang zeigen, damitwir anfänger das auch verstehen. danke luis

9 Am 08. Nov. 2006 schrieb Sigi:

Hallo Luis,
was meinst Du mit "bunten Hintergrund"?
Welches Problem hast Du denn genau?
Die Tabelle zeigt alles, was erforderlich ist.
Allerdings musst Du dich mit dem "Dualen Zahlensystem" vertraut machen!
Gruss Sigi

10 Am 04. Dez. 2006 schrieb Sven:

Hi
Ich hab uses crt benutzt aber mein text blinkt nicht ? :-?
woran könnte es noch liegen??
oder fuktioniert dass blinekn nicht bei allen Pascal-Versionen??

11 Am 26. Feb. 2007 schrieb ferdinand worel:

HI,
Ich wollte wissen, wie man den ganzenbildschirm "färbt".
gruß ferdinand

12 Am 26. Feb. 2007 schrieb Clemens Weiß:

@ferdinand:
Einmal Farbe setzen und dann clrscr; aufrufen.

Grüße,
Clemens

13 Am 11. Nov. 2008 schrieb Dieterdraht:

Also ich finde die Beschreibung auch relativ einleuchtend.
Nur wird mir nicht so klar wieso man den Goto befehl nutzen sollte.
komme bis jetzt ohne ihn klar.
zu den fragen der "bunten hintergrunds" es gibt natürlich die möglischkeit den hintergrund einfarbig zu machen.
ich glaube, dass es auch möglich währe einen bunten selber zu kreiren, dazu müsste man allerdings in der filedatei von TPC rumbauen und einfach eine dezimalzahl als link für die selbstgemachte grafik einbinden.
nen tipp zum gestalten eines TPC programms es ist eindeutiger wenn man nur Wichtige und Einflussreiche Aus bzw. Eingaben farblich markiert mit textcolor.
das bringt auch bestimmt mehr extrapunkte in der arbeit als einen hässlichen gelben hintergrung mit blauer farbe (Augenkrebs).
dein infolehrer wirds dir danken...
hab TPC jetzt auch seit 3 monaten in der schule...
finds an sich echt ziemlich easy
MFG Dieter Draht

14 Am 01. Okt. 2010 schrieb Leander:

Sicher gibt es außer gotoxy() auch noch andere Möglichkeiten, die Cursorposition zu ändern,
allerdings ist es doch eine praktische Funktion von Crt.
Gruß
Leander

15 Am 17. Jan. 2012 schrieb Melanie:

Hi, ich muss morgen einen Vortrag über Grafik halten. Mit den Farben in Pascal komm ich aber noch nicht ganz klar. Ist das jetzt RGB oder CMYK? Wenn ich 4 Bits für die Vordergrundfarbe habe, wie viele habe ich dann für jede einzelne Grundfarbe? Und oben die Tabelle versteh ich auch irgendwie nicht. Gibt es für jede Farbe eine Dezimal und damit auch eine Binärzahl?!
LG Melli

Neuer Kommentar

Richten Sie generelle Fragen bitte ins Turbo Pascal-Forum!








Webplain.de » Turbo Pascal » Farben und Auflösungen

Nach oben
© 2000-2012 Clemens Weiß | Webplain.de
Link zu dieser Seite | Letzte Änderung: 26. Okt. 2008