PDA

Visualizza la versione completa : [C++] Stampare un testo a colori con Turbo C++ 3.1


Odimesh
06-03-2006, 14:17
Ebbene, quello che sto tentando di fare con questo mitico linguaggio di programmazione proprio questo: riuscire a scovare fuori qualche sorta di funzione che mi consenta di stampare su schermo un ipotetico testo a colori...

Tempo fa abbiamo fatto la stessissima cosa, ma in Assembler, impiegandoci qualcosa come due o tre mesi circa (quindi, potete perfettamente immaginare l'enorme FACILITA' nel programmare con questo linguaggio... :biifu: :cry: ), perci ho pensato che fosse possibile riuscirci pi che tranquillamente con il Turbo C++ 3.1...

Potete aiutarmi? :)

Samuele_70
06-03-2006, 19:14
Originariamente inviato da Odimesh
[...]qualche sorta di funzione che mi consenta di stampare su schermo un ipotetico testo a colori...
[...] ho pensato che fosse possibile riuscirci pi che tranquillamente con il Turbo C++ 3.1...

Potete aiutarmi? :)
Ci provo :)

L'esempio che segue pu essere compilato solo su compilatori
Borland, l'ho testato con il Borland C/C++ free compiler v5.5,
ma dovresti riuscire a compilarlo anche con il vetusto Turbo C.



/*
** Testo a colori con Bcc32
**
*/

#include <stdio.h>
#include <conio.h>

/*
dark colors :
0 BLACK,
1 BLUE,
2 GREEN,
3 CYAN,
4 RED,
5 MAGENTA,
6 BROWN,
7 LIGHTGRAY,
8 DARKGRAY,

light colors :
9 LIGHTBLUE,
10 LIGHTGREEN,
11 LIGHTCYAN,
12 LIGHTRED,
13 LIGHTMAGENTA,
14 YELLOW,
15 WHITE
*/

int main()
{
printf(" ");
for(int ForeColor=9; ForeColor<16; ForeColor++)
printf(" FC=%2d ", ForeColor);
printf("\n\n");
for(int BackColor=0; BackColor<8; BackColor++)
{
printf("Background color=%d ", BackColor);
textbackground( BackColor );

for(int ForeColor=9; ForeColor<16; ForeColor++)
{
textcolor( ForeColor );
cprintf(" Sample ");
}
printf("\n\n");
}
textcolor( WHITE );
textbackground( BLACK );
printf("Fine.\n");
getch();
return 0;
}

Odimesh
12-03-2006, 00:49
Guarda, non so proprio come ringraziarti, davvero, hai fatto un lavoro a dir poco SU-PER-LA-TI-VO!!!!! :yuppi:

Anche se c' da dire che, per poter compilare ed eseguire correttamente il programma sono stato costretto a passare a Dev-C++ (ho la versione 4.9.8.0), visto che - purtroppo! :( - per quanto riguarda Borland, al momento possiedo "solamente" la 3.1 e la 4.5, ma NON la versione che usi tu... :dh:

Comunque, al di l del codice che mi hai gentilmente scritto, che semplicemente PERFETTO (fatta eccezione per il fatto che assolutamente necessario aggiungere ANCHE la riga relativa all'inclusione del file conio.c per poter utilizzare le varie funzioni preposte... ma questo, perlomeno, un problema solo di Dev-C++), volevo ugualmente sottolineare (per quei pochi che non lo sapessero ancora... :D ) che la versione 4.5 di Borland supporta s funzioni come textcolor e textbackground, ma che per poterle utilizzare bisogna lavorare sotto sistemi a 16 bit (come DOS... :prrr: ), a meno di passare a compilatori che girano anche sotto i 32 bit, come Dev per l'appunto...

Vabb, ci tenevo solo a dare queste precisazioni, nulla pi...!

Allora ciao e grazie ancora per il tuo aiuto, Samuele!!!!!! :ciauz:

Samuele_70
12-03-2006, 11:39
Originariamente inviato da Odimesh
Guarda, non so proprio come ringraziarti, davvero, hai fatto un lavoro a dir poco SU-PER-LA-TI-VO!!!!! :yuppi:

Anche se c' da dire che, per poter compilare ed eseguire correttamente il programma sono stato costretto a passare a Dev-C++ (ho la versione 4.9.8.0), visto che - purtroppo! :( - per quanto riguarda Borland, al momento possiedo "solamente" la 3.1 e la 4.5, ma NON la versione che usi tu... :dh:

Dov il problema ? BCC32 (http://www.borland.com/downloads/download_cbuilder.html) (Info x l'istallazione (http://cplus.about.com/od/compilersandides/l/aa031502a.htm)) :)
Forse non il migliore, ma come velocit di compilazione non ha rivali !


Comunque, al di l del codice che mi hai gentilmente scritto, che semplicemente PERFETTO (fatta eccezione per il fatto che assolutamente necessario aggiungere ANCHE la riga relativa all'inclusione del file conio.c per poter utilizzare le varie funzioni preposte... ma questo, perlomeno, un problema solo di Dev-C++), volevo ugualmente sottolineare (per quei pochi che non lo sapessero ancora... :D ) che la versione 4.5 di Borland supporta s funzioni come textcolor e textbackground, ma che per poterle utilizzare bisogna lavorare sotto sistemi a 16 bit (come DOS... :prrr: ), a meno di passare a compilatori che girano anche sotto i 32 bit, come Dev per l'appunto...

Per tutti i compilatori in ambiente win32 puoi risolvere
utilizzando le chiamate alle API di sistema.


Vabb, ci tenevo solo a dare queste precisazioni, nulla pi...!

Allora ciao e grazie ancora per il tuo aiuto, Samuele!!!!!! :ciauz:
Prego :zizi:

Odimesh
12-03-2006, 20:15
Originariamente inviato da Samuele_70
Per tutti i compilatori in ambiente win32 puoi risolvere
utilizzando le chiamate alle API di sistema.
Interessante, e anche molto... :fighet:
Comunque, per quanto ne so, le API non sono per caso delle interfacce software che mettono in comunicazione un'applicazione con il sistema operativo? :master:

E se s, in che modo potrebbero permettermi di supportare funzioni che, almeno per il momento, sono utilizzabili unicamente sotto compilatori a 32 bit?

Allora ciao e grazie ancora (anche per i link che mi hai passato... :zizi: )!!! :)

Samuele_70
14-03-2006, 19:29
Originariamente inviato da Odimesh
Interessante, e anche molto... :fighet:
Comunque, per quanto ne so, le API non sono per caso delle interfacce software che mettono in comunicazione un'applicazione con il sistema operativo? :master:

E se s, in che modo potrebbero permettermi di supportare funzioni che, almeno per il momento, sono utilizzabili unicamente sotto compilatori a 32 bit?

Allora ciao e grazie ancora (anche per i link che mi hai passato... :zizi: )!!! :)

Nella programmazione in ambiente windows, grazie alle API puoi fare tutto.
Puoi creare, per esempio, funzioni che svolgono le stesse operazioni
incluse nella conio.h dei compilatori Borland.

Ecco alcuni esempi da GooglE :

www.codeguru.com (http://www.codeguru.com/Cpp/W-D/console/article.php/c3959)
http://qcpages.qc.edu (http://qcpages.qc.edu/acmqc/os/c_cpp/color/)
http://www.seg.etsmtl.ca (http://www.seg.etsmtl.ca/inf125/Documents/Outils%20pour%20VC/VC_conio/VC_conio.cpp)

Sito di riferimento : MSDN (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/console_reference.asp).

Loading