AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TextColor für Delphi

Ein Thema von Neutral General · begonnen am 12. Dez 2005 · letzter Beitrag vom 12. Dez 2005
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

TextColor für Delphi

  Alt 12. Dez 2005, 16:38
Hi,

Wenn man in Delphi eine Konsolenanwendung macht, dann programmiert man ja praktisch Pascal (wie auch mit VCL^^).
In TurboPascal kann man Text einfärben mit TextColor(Farbe). Den Befehl gibts in Delphi aber irgendwie nicht mehr...
Die ganzen Sachen mit TextColor etc steht in Turbo-Pascal in der Unit crt.
Ich wollte jetzt die Pascal Unit in ne Delphi Unit umwandeln um die Sachen wie TextColor nutzen zu können.
Die crt Unit sieht so aus:

Delphi-Quellcode:

{*******************************************************}
{                                                       }
{       Turbo Pascal Version 7.0                        }
{       CRT Interface Unit                              }
{                                                       }
{       Copyright (C) 1988,92 Borland International     }
{                                                       }
{*******************************************************}

unit Crt;

{$D-,I-,S-}

interface

const

{ CRT modes }

  BW40 = 0; { 40x25 B/W on Color Adapter }
  CO40 = 1; { 40x25 Color on Color Adapter }
  BW80 = 2; { 80x25 B/W on Color Adapter }
  CO80 = 3; { 80x25 Color on Color Adapter }
  Mono = 7; { 80x25 on Monochrome Adapter }
  Font8x8 = 256; { Add-in for ROM font }

{ Mode constants for 3.0 compatibility }

  C40 = CO40;
  C80 = CO80;

{ Foreground and background color constants }

  Black = 0;
  Blue = 1;
  Green = 2;
  Cyan = 3;
  Red = 4;
  Magenta = 5;
  Brown = 6;
  LightGray = 7;

{ Foreground color constants }

  DarkGray = 8;
  LightBlue = 9;
  LightGreen = 10;
  LightCyan = 11;
  LightRed = 12;
  LightMagenta = 13;
  Yellow = 14;
  White = 15;

{ Add-in for blinking }

  Blink = 128;

var

{ Interface variables }

  CheckBreak: Boolean; { Enable Ctrl-Break }
  CheckEOF: Boolean; { Enable Ctrl-Z }
  DirectVideo: Boolean; { Enable direct video addressing }
  CheckSnow: Boolean; { Enable snow filtering }
  LastMode: Word; { Current text mode }
  TextAttr: Byte; { Current text attribute }
  WindMin: Word; { Window upper left coordinates }
  WindMax: Word; { Window lower right coordinates }

{ Interface procedures }

procedure AssignCrt(var F: Text);
function KeyPressed: Boolean;
function ReadKey: Char;
procedure TextMode(Mode: Integer);
procedure Window(X1,Y1,X2,Y2: Byte);
procedure GotoXY(X,Y: Byte);
function WhereX: Byte;
function WhereY: Byte;
procedure ClrScr;
procedure ClrEol;
procedure InsLine;
procedure DelLine;
procedure TextColor(Color: Byte);
procedure TextBackground(Color: Byte);
procedure LowVideo;
procedure HighVideo;
procedure NormVideo;
procedure Delay(MS: Word);
procedure Sound(Hz: Word);
procedure NoSound;

// Komischweise fehlt hier das Folgende:
{
implemetation

end.
}
Naja das Problem ist: Wo sind die proceduren und Funktionen da bitte "ausgefüllt" ? -.-
Gar nicht. Aber woher weis Pascal was es tun soll ?
Und viel wichtiger: Woher bekomm ich die Funktionen/Proceduren ?

PS: Die Datei heißt: crt.int... wobei pascal immer tpu dateien zum einbinden braucht
Aber es gibt keine crt.tpu

Gruß
Michael
Michael
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#2

Re: TextColor für Delphi

  Alt 12. Dez 2005, 16:44
Probier mal den Befehl SETTEXTCOLOR aus der Unit Windows. Dafür brauchst du das Handle des Konsolenfensters. Aber woher krieg ich das
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: TextColor für Delphi

  Alt 12. Dez 2005, 16:54
Zitat von ichbins:
Probier mal den Befehl SETTEXTCOLOR aus der Unit Windows. Dafür brauchst du das Handle des Konsolenfensters. Aber woher krieg ich das
Ok danke aber was soll ich denn bei DC angeben ?
Dafür brauch ich ja das Handle meiner Anwendung.. Aber so was wie Application.Handle gibts in ner Konsolenanwendung nicht.. Und ich suche sicher nicht mit FindWindow mein eigenes Fenster -.-^^
Michael
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#4

Re: TextColor für Delphi

  Alt 12. Dez 2005, 16:57
Zitat von Neutral General:
Und ich suche sicher nicht mit FindWindow mein eigenes Fenster -.-^^
Wieso denn nicht

Und im Notfall kannst du ja immer noch die Forms einbinden.

wenn ich application.handle aus der forms verwende und mit getwindowdc in die hdc umwandle, scheints nicht zu klappen...
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: TextColor für Delphi

  Alt 12. Dez 2005, 17:01
Das Problem ist das wir das grad im Info Unterricht mit Pascal arbeiten. Und wenn Pascal mal wieder nicht funktioniert dann machen wir Delphi Konsolenanwendungen... Ist ja praktisch (fast) das Gleiche. Bis auf die Tatsache das es halt einige Pascal Befehle nicht mehr gibt.. Und ich glaube wenn ich denen dann sage das sie die Textfarbe nur ändern können wenn sie vorher das Handle ("Handle? Kann man das essen?" ^^) der Anwendung herausfinden müssen dann lassen die das lieber sein

Ich könnte vielleicht ne eigene Unit machen wo dann ne TextColor Methode mache die dann von SetTextColor "abgeleitet" ist. Aber naja mal sehn...

EDIT:

Zitat:
wenn ich application.handle aus der forms verwende und mit getwindowdc in die hdc umwandle, scheints nicht zu klappen...
Ja hab ich mir gedacht.. das wäre auch zu einfach
Hat sone Konsolenanwendung überhaupt ein Handle ? ^^
Bzw Application hat ja mit Konsolenanwendungen normalerweise nix zu tun.. (oder?)
Michael
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: TextColor für Delphi

  Alt 12. Dez 2005, 17:03
Delphi-Referenz durchsuchenSetTextColor ist für Canvas-Objekte, nicht für Konsolen geht nicht.

So gehts:  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FarbWert); Farbwert nimmt Werte von 0 bis 255 an.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: TextColor für Delphi

  Alt 12. Dez 2005, 17:06
Ok, danke Sakura.

Was mich noch interessieren würde wäre GotoXY und TextBackground für Delphi...

(Dafür muss ich doch jetzt keinen neuen Thread aufmachen oder ?)
Michael
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: TextColor für Delphi

  Alt 12. Dez 2005, 17:07
Zitat von sakura:
Farbwert nimmt Werte von 0 bis 255 an.
Noch ein paar Zusatzinfos zum Wert.

0 - Schwarz
1 - Blau
2 - Grün
3 - Dunkles Cyan
4 - Rot
5 - Lila
6 - bräunliches Gelb
7 - "dunkles weiß"
8 - "helles grau"
9 - hellblau
10 - hellgrün
11 - cyan
12 - knallrot
13 - grelles lila
14 - gelb
15 - schneeweiß ......

Diese Wert um 4 Bit (shl 4) nach links verschieben und dann wird die Hintergrundfarbe entsprechend gesetzt.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: TextColor für Delphi

  Alt 12. Dez 2005, 17:10
Zitat von Neutral General:
Was mich noch interessieren würde wäre GotoXY
Delphi-Quellcode:
var
  CP: _COORD;

...

CP.X := 5;
CP.Y := 4;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), CP);
Zitat von Neutral General:
TextBackground für Delphi...
Siehe obiger Post - gleiche Funktion. Siehe obiger Post.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: TextColor für Delphi

  Alt 12. Dez 2005, 17:11
P.S.: Alles mit 2 Minuten Googeln erledigt. (VB Source nach Delphi portiert und fertig!)

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 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