Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Schrift- und Hintergrundfarbe von der Konsole auslesen? (https://www.delphipraxis.net/141433-schrift-und-hintergrundfarbe-von-der-konsole-auslesen.html)

Astartes 8. Okt 2009 23:27


Schrift- und Hintergrundfarbe von der Konsole auslesen?
 
Hi,

Könnt ihr mir einen Tipp geben mit dem ich die aktuellen Farbwerte, Schriftfarbe und Hintergrundfarbe, der Konsole auslesen kann. Ich weiß, wie man die Schrift und den Hintergrund der Konsole farbig gestaltet. Aber beim Auslesen dieser Attribute stehe ich grade aufem Schlauch.

Wäre für einen Tipp! Dankbar!

LG
Tom

Luckie 8. Okt 2009 23:59

Re: Schrift- und Hintergrundfarbe von der Konsole auslesen?
 
Merk sie dir doch beim Setzen.

himitsu 9. Okt 2009 00:00

Re: Schrift- und Hintergrundfarbe von der Konsole auslesen?
 
Wie setzt du denn diese Farben?

Nimm diese Befehle und schau dort nach, wo du sie her hast ... es werden sich da mit großer Sicherheit auch die Umkehrfunktionen befinden

z.B. für bei den APIs einfach im MSDN nachsehn


[edit]
MSDN-Library durchsuchenSetConsoleTextAttribute

alleinherrscher 9. Okt 2009 00:03

Re: Schrift- und Hintergrundfarbe von der Konsole auslesen?
 
Ich werf mal GetConsoleScreenBufferInfoEx in den Raum...

http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

Aber ich frag mich immer, wie ich sowas in Delphi umsetzen kann, wenn ich das im MSDN lese... :gruebel:

Astartes 9. Okt 2009 00:05

Re: Schrift- und Hintergrundfarbe von der Konsole auslesen?
 
Also, wenn jetzt keinen Fehler drin ist. Müsste das, die richtige Lösung für das Problem sein.

@Lukie Das ist genau mein Vorhaben ;)

Habe inzwischen die Lösung über die MSDN rausgefunden! Danke für die Hilfe!

Delphi-Quellcode:
var
  lpScreenInfo: _CONSOLE_SCREEN_BUFFER_INFO;
  DefaultValues: WORD;
  hOutput: THandle;
begin
  Try
    hOutput := GetStdHandle(STD_OUTPUT_HANDLE);

    GetConsoleScreenBufferInfo(hOutput ,lpScreenInfo);
    DefaultValues := lpScreenInfo.wAttributes;

    SetConsoleTextAttribute(hOutput , 0 + 14);
    Write('Hallo Delphigemeinde!');
    SetConsoleTextAttribute(hOutput , DefaultValues);

  Except
    On E:Exception Do
      Writeln(E.Classname, ': ', E.Message);
  End;
End;

Luckie 9. Okt 2009 00:06

Re: Schrift- und Hintergrundfarbe von der Konsole auslesen?
 
Zitat:

Zitat von alleinherrscher
Ich werf mal GetConsoleScreenBufferInfoEx in den Raum...

http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

Aber ich frag mich immer, wie ich sowas in Delphi umsetzen kann, wenn ich das im MSDN lese... :gruebel:

Ist doch nur ein Handle und ein Zeiger auf eine Struktur. Wo ist das Problem?

himitsu 9. Okt 2009 00:09

Re: Schrift- und Hintergrundfarbe von der Konsole auslesen?
 
die normale Version ohne EX kennt sogar Delphi, ansonsten mußt du einfach nur die Definitionen nach Delphi übersetzen


das MSDN sagt
Code:
BOOL WINAPI GetConsoleScreenBufferInfo(
  __in  HANDLE hConsoleOutput,
  __out PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo
);
Requirements
DLL : Kernel32.dll

[equote="in Delphi sieht's dann so aus"]
Delphi-Quellcode:
function GetConsoleScreenBufferInfo(hConsoleOutput: THandle;
  lpConsoleScreenBufferInfo: PConsoleScreenBufferInfo): BOOL; stdcall;
  external 'kernel32.dll';
und etwas hübscher dann so
Delphi-Quellcode:
function GetConsoleScreenBufferInfo(hConsoleOutput: THandle;
  var lpConsoleScreenBufferInfo: TConsoleScreenBufferInfo): BOOL; stdcall;
  external 'kernel32.dll';
[/equote]

alleinherrscher 9. Okt 2009 00:11

Re: Schrift- und Hintergrundfarbe von der Konsole auslesen?
 
:oops: nix, nix... bin schon still und hab wieder was gelernt :)

Danke :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 Uhr.

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