![]() |
Bunter text in console
unter
![]() H I L F E |
AW: Bunter text in console
Du willst von einem Programm aus farbigen Text haben?
Was hast du da denn gegen SetConsoleTextAttribute? Und Google hatte dir auch nichts gezeigt? ![]() ![]() ![]() ![]() ... |
AW: Bunter text in console
versuch es mal so:
Delphi-Quellcode:
evtl must Du die Sequenz noch mit ";" beenden also #27+'[45m;'
writeln('Hallo '+#27+'[43m World';
Gruß K-H |
AW: Bunter text in console
Liste der Anhänge anzeigen (Anzahl: 2)
Delphi-Quellcode:
{$APPTYPE CONSOLE} {$R *.res} uses SysUtils, Windows; begin try SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED or BACKGROUND_INTENSITY); Write('Roter Hintergrund'); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN); Write('Grüner Text'); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE or BACKGROUND_INTENSITY); Writeln('Blauer Hintergrund'); readln; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. |
AW: Bunter text in console
Funktionieren Escape-Sequenzen unter Windows überhaupt?
|
AW: Bunter text in console
Zitat:
Bei den "neuen" Windows versionen gibt es das IMHO nicht mehr. |
AW: Bunter text in console
wie lade ich die ansi.sys in meiner Konsolen-Anwendung ?
Delphi-Quellcode:
include "ansi.sys" ???
|
AW: Bunter text in console
Zitat:
Zitat:
![]() ggf. hilft ![]() Gruß K-H |
AW: Bunter text in console
Zitat:
Wieso sollte man auch einen Treiber in ein Programm reinladen? Abgesehn davon, daß in Windows 7 x64 der alte "unsichere" 16-Bit-Schrott nur entgültig entsorgt wurde. Antwort: Entweder unterstützt die Console (z.B. cmd.exe) die Escape-Codes und man kann die noch verwenden, oder sie macht es nicht. Denn die Console müsste ja den Eingang (StdOut und ErrOut) analysieren und die Zeichen in entsprechende Befehle für ihre Anzeige umwandeln. |
AW: Bunter text in console
ohne ANSI ESCAPE in Kurzform kann man hier nicht gewinnen ...
![]()
Delphi-Quellcode:
ist hier nicht anwendbar .....
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED or BACKGROUND_INTENSITY);
|
AW: Bunter text in console
Da Delphi standardmäßig keine "kürzere" Kapselung dieser API kennt, kannst du es mit Delphi also vergessen.
Die Konstanten kannst'e aber noch locker direkt als Zahl verwenden. Kann die CMD.exe das? test.bat / test.cmd Zitat:
Wenn ich mich so an Knoppix erinnere ... die Linuxkonsole ist auch extrem kunterbund. |
AW: Bunter text in console
AFAIK kennt die CMD keine Escape-Sequenzen. Es gibt "nur" das Kommando "color", mit dem man die Farben der kompletten Konsole selbst setzen kann. Es gibt auch eine Möglichkeit für Delphi, die ich 2005 mit Delphi 5 zusammengeschrieben habe, um einzelne Zeichen/Wörter farbig auszugeben. Ich muss aber erst raussuchen, wie ich das angestellt habe, denn momentan steige ich nicht durch meinen Code :stupid:.
MfG Dalai |
AW: Bunter text in console
Natürlich gibt es auch immer noch die
![]() Fürs Codegolf ist die Unit natürlich nicht zu gebrauchen, aber das gilt auch für Pascal allgemein ;) |
AW: Bunter text in console
OK, jetzt weiß ich's wieder. Der Code sieht beispielhaft so aus:
Delphi-Quellcode:
Dafür braucht es die Unit Crt von Borland. Ich hab sie damals Borland_crt.pas genannt, in dieser steht aber "unit crt;". Keine Ahnung, woher ich die hatte. Könnte die von Namenloser genannte Unit sein. Die Unit selbst sagt im Header "Copyright (c) 1988-2003 Borland Software Corporation". In der Unit gibt es unter anderem eine procedure TextColor, die die Farbe für folgende Textausgaben setzt. Dieses damals kompilierte 32 Bit Programm funktioniert sogar auf einer 64 Bit CMD eines Win7 x64.
uses
SysUtils, Borland_Crt; var last_text_attr, text_color : byte; {Text-Farbe sichern} last_text_attr:= TextAttr; {Text-Farbe setzen} textcolor(text_color); writeln('Text'); {Text-Farbe wiederherstellen} TextAttr:= last_text_attr; EDIT: Ist die von Namenloser genannte Unit. MfG Dalai |
AW: Bunter text in console
![]()
|
AW: Bunter text in console
@Bummi: Wo soll die Exception herkommen? API Funktionen werfen in der Regel keine Execptions.
|
AW: Bunter text in console
@Luckie, ich habe einfach den Standardrumpf genommen ohne ihn auszuputzen.
Ich hätte den Beitrag auch gerne wieder gelöscht, da redundant. (Ich habe vorher nicht den ganzen Thread gelesen :oops:) |
AW: Bunter text in console
Es gibt das ANSICON Projekt
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz