Einzelnen Beitrag anzeigen

Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#5

Re: Borland C vs. Dev Cpp

  Alt 18. Okt 2004, 20:58
Zitat:
Aber da stoße ich auf ein paar unstimmitgkeiten. z.B. bei dem borland funzt der Befehl: clrscr(); wenn ich das proggie auf meinem compiler lass glotzt mich der nur doof an.
Diese Funktionen kann man sehr leicht nachprogrammieren.

Nun gut, ich poste mal meine Version davon...

Code:
/*
Die wichtigsten Funktionen meiner Konsolen-Headerdatei "text.h"
(c) Lukas Tr. / Tubos 2004
*/

// Die folgenden Bezeichnungen sind zur Vereinfachung der Farbeinstellung

#define red FOREGROUND_RED
#define green FOREGROUND_GREEN
#define blue FOREGROUND_BLUE
#define white FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_INTENSITY
#define gray FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN
#define lightred FOREGROUND_RED|FOREGROUND_INTENSITY
#define lightgreen FOREGROUND_GREEN|FOREGROUND_INTENSITY
#define lightblue FOREGROUND_BLUE|FOREGROUND_INTENSITY
#define black 0


#define bgblue BACKGROUND_BLUE
#define bggreen BACKGROUND_GREEN
#define bgred BACKGROUND_RED
#define bgwhite BACKGROUND_RED|BACKGROUND_BLUE|BACKGROUND_GREEN|BACKGROUND_INTENSITY
#define bggray BACKGROUND_RED|BACKGROUND_BLUE|BACKGROUND_GREEN
#define bglightred BACKGROUND_RED|BACKGROUND_INTENSITY
#define bglightgreen BACKGROUND_GREEN|BACKGROUND_INTENSITY
#define bglightblue BACKGROUND_BLUE|BACKGROUND_INTENSITY
#define bgblack 0

int MaxX(void)
{
   CONSOLE_SCREEN_BUFFER_INFO info;
   GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&info);
   return info.srWindow.Right;
}

int MaxY(void)
{
   CONSOLE_SCREEN_BUFFER_INFO info;
   GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&info);
   return info.srWindow.Bottom;
}

void ClrScr(void)
{
   COORD pos;
   unsigned long t;
   pos.X=0;
   pos.Y=0;
   FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE),' ',MaxX()*MaxY(),pos,&t); // alles mit leerzeichen vollschreiben
   FillConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE),bgblack,MaxX()*MaxY(),pos,&t); // Alle Farbinformationen löschen
   gotoxy(0,0);
}

void TextColor(WORD farbe)
// Setzt die Farbe (Text und Hintergrund!!) auf den übergebenen wert
// Beispiel: TextColor(green | bgwhite) ergibt grün auf weißem hintergrund
{
   SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),farbe);
}

void gotoxy(int x, int y)
{
   COORD pos;
   pos.X=x;
   pos.Y=y;
   if (!SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos)) printf("Fehler bei gotoxy (%d/%d)\n",x,y);
}
Ich habe bereits mehrere C++-Compiler probiert (Dev-Cpp, Visual C++, C++Builder), aber ich finde dass Microsoft Visual C++ (im Moment arbeite ich mit der 6.0er) der Beste ist.
Konsolenfunktionen programmiere ich nach und VC++ ist einfach komfortabler.

Meine Antwort auf die ursprüngliche Frage: weder noch...verwende Visual C++.

[EDIT]
Zitat:
Und unter Linux? Solle dann etwa

Code:
#ifdef LINUX
system("clear");
#else
system("cls");
#endif
machen?
Mein Code funktioniert nur unter Windows.
Ich programmiere im Moment auch nur für Windows.[/EDIT]

[EDIT2]Mehrere Fehler im obigen Code korrigiert[/EDIT2]


mfg. Tubos
Lukas
  Mit Zitat antworten Zitat