Programa C++ ión
Esta sección ayudará a los que se estén iniciando en la
programación en C++ con Borland a desarrollar programas más rápidamente gracias
al uso de rutinas que engloban el uso de sentencias repetitivas, como el printf(…),
textcolor(…), gotoxy(…), etc.
También incorporaré rutinas para crear menús fácilmente,
impresión de texto, impresión de números, recuadros de diversos tipos, etc.
Hoy facilitaremos la impresión de variables de texto (char)
en pantalla.
Como sabéis, para imprimir texto en color en una zona
concreta de la pantalla hay que usar las funciones gotoxy(columna, fila)
para situarse en la zona de la pantalla en donde queremos pintar el dato, textcolor(…)
y textbackground(…)para
poner color de texto y color de fondo y por último el cprintf(…) con el
formato correspondiente.
Pues bien, en nuestro código fuente esto quedaría así (más o
menos):
gotoxy(10,20); //situarse en la columna 10, fila 20
textcolor(10); //texto en verde brillante
textbackground(4); //fondo en granate
cprintf(“Este
es el dato nombre: %s”, variablecharnombre);
Si tuviéramos
que pintar una ficha de datos con 15 variables, realizar esto sería bastante
tedioso. Para mejorar esta situación podemos implementar una rutina (función)
que realice estos pasos. La función podría tener este aspecto:
Void
TxtPinta (int Fila , int Columna, int Tinta, int Papel, char Dato[80]);
{
gotoxy(Columna, Fila);
//Aquí
pondríamos un control de Papel Brillante(1)
textcolor (Tinta);
textbackground
(Papel);
cprintf(“%s”, Dato);
}
De manera
que en nuestro programa solo tendríamos que escribir:
TxtPinta(20,
10, LIGHTGREEN, RED, MyTexto);
Como se
aprecia, esto es mucho más rápido y más legible a la hora de revisar el código
fuente.
Adicionalmente,
si queremos que el fondo sea brillante, por ejemplo pintar con Tinta GRANATE
sobre Papel ROJO, nuestra rutina debería
incorporar el siguiente control:
If
(Papel > 7) Tinta=Tinta+128; //(1)
Ejemplo
completo:
#include<conio.h>
#include<stdio.h>
#include<string.h>
//==============================================================
// Definimos
los Colores
//==============================================================
#define
NEGRO 0
#define
AZUL 1
#define
VERDE 2
#define
CYAN 3
#define
GRANATE 4
#define
MORADO 5
#define
MARRON 6
#define
BLANCO 7
#define
GRIS 8
#define
AZULB 9
#define
VERDEB 10
#define
CYANB 11
#define
ROJO 12
#define
LILA 13
#define
AMARILLO 14
#define
BLANCOB 15
#define
BRILLO 128
//==============================================================
// Función
Texto Pinta
//==============================================================
void
TxtPinta (int Fila, int Columna, int Tinta, int Papel, char Txt[80])
{
gotoxy
(Columna, Fila);
if (Papel>7) Tinta=Tinta+BRILLO;
textcolor(Tinta);
textbackground(Papel);
cprintf(Txt);
}
//==============================================================
//
Programa Principal
//==============================================================
void
main()
{
int
Fila, Columna, Tinta, Papel;
char
Text[80];
char
OtroText[1][80];
Fila=3;
Columna=20;
Papel=AZUL; //Azul oscuro
Tinta=CYANB; //Azul claro brillante
strcpy(Text,"
Prueba FUNCION TxtPinta ");
TxtPinta
(Fila, Columna, Tinta, Papel, Text);
strcpy(OtroText[0],"
Tabla0 FUNCION TxtPinta ");
TxtPinta
(Fila+2, Columna, Tinta, Papel, OtroText[0]);
strcpy(OtroText[1],"
Tabla1 FUNCION TxtPinta ");
TxtPinta
(Fila+3, Columna, Tinta, Papel, OtroText[1]);
TxtPinta
(Fila++, Columna++, GRANATE, ROJO, “Prueba de TxtPinta”);
getch();
}
//==============================================================
//
FIN Programa Principal
//==============================================================
Esta función
será muy útil en el 99,99% de los casos que queramos imprimir texto en
pantalla. Como habréis observado está limitada a textos de 80 caracteres de
longitud. Queda para los más avezados modificar la rutina para que pueda
imprimir textos más largos.
Gracias a todos.