Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Bunter text in console (https://www.delphipraxis.net/178712-bunter-text-console.html)

bernhard_LA 22. Jan 2014 16:04

Bunter text in console
 
unter http://www.delphipraxis.net/56245-ko...rbe-haben.html gibt es leider kein Beispiel wie ich mit Hilfe des ANSI ESC Sequenzen farbigen Text in einer Konsolenanwendung schreibe ... wer hat ein Demo für mich ?

H I L F E

himitsu 22. Jan 2014 16:10

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?
Bei Google suchenconsole color escape squenzen [edit] auch wenn das Denglisch nicht so gut war, wie mir grad auffällt

http://en.wikipedia.org/wiki/ANSI_escape_code
http://linuxgazette.net/issue65/padala.html
http://www.linupedia.org/opensuse/Farbe_in_der_Konsole
...

p80286 22. Jan 2014 16:19

AW: Bunter text in console
 
versuch es mal so:
Delphi-Quellcode:
writeln('Hallo '+#27+'[43m World';
evtl must Du die Sequenz noch mit ";" beenden also #27+'[45m;'
Gruß
K-H

Bummi 22. Jan 2014 16:41

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.

Namenloser 22. Jan 2014 16:43

AW: Bunter text in console
 
Funktionieren Escape-Sequenzen unter Windows überhaupt?

turboPASCAL 22. Jan 2014 16:52

AW: Bunter text in console
 
Zitat:

Zitat von p80286 (Beitrag 1244925)
versuch es mal so:
Delphi-Quellcode:
writeln('Hallo '+#27+'[43m World';
evtl must Du die Sequenz noch mit ";" beenden also #27+'[45m;'
Gruß
K-H

Ich glaube damit das Funktioniert musste man in MS-DOS Zeiten noch die ansi.sys in der config.sys laden.
Bei den "neuen" Windows versionen gibt es das IMHO nicht mehr.

bernhard_LA 22. Jan 2014 16:59

AW: Bunter text in console
 
wie lade ich die ansi.sys in meiner Konsolen-Anwendung ?
Delphi-Quellcode:
include "ansi.sys" ???

p80286 22. Jan 2014 17:19

AW: Bunter text in console
 
Zitat:

Zitat von turboPASCAL (Beitrag 1244933)
Bei den "neuen" Windows versionen gibt es das IMHO nicht mehr.

Da liegst Du wohl richtig:
Zitat:

The Win32 console does not natively support ANSI escape sequences at all. Software such as ANSICON[7] can act as a wrapper around the standard Win32 console and add support for ANSI escape sequences. Otherwise software must manipulate the console with the ioctl-like Console API[8] interlaced with the text output. Some software internally interprets ANSI escape sequences in text being printed and translates them to these calls.[9]
(http://en.wikipedia.org/wiki/ANSI_escape_code)

ggf. hilft http://delphicrt.sourceforge.net/crt_functions.html ja weiter

Gruß
K-H

himitsu 22. Jan 2014 17:19

AW: Bunter text in console
 
Zitat:

Zitat von bernhard_LA (Beitrag 1244934)
wie lade ich die ansi.sys in meiner Konsolen-Anwendung ?
Delphi-Quellcode:
include "ansi.sys" ???

Garnicht?

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.

bernhard_LA 22. Jan 2014 17:23

AW: Bunter text in console
 
ohne ANSI ESCAPE in Kurzform kann man hier nicht gewinnen ...

http://codegolf.stackexchange.com/qu...mpic-games-log


Delphi-Quellcode:
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED or BACKGROUND_INTENSITY);
ist hier nicht anwendbar .....


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz