Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: nicolas2013alcubo en 5 Mayo 2013, 05:15 am



Título: Dibujar campos ("cajas de texto") en c para MS-DOS
Publicado por: nicolas2013alcubo en 5 Mayo 2013, 05:15 am
Uso el Turbo C++ 3.0 en Windows 7 y usando el DOSBOX. Bueno, mi duda es la siguiente: Yo quiero hacer un programita que pida el ingreso de un número, string, lo que sea y que al dado del mensaje de solicitud (prompt), ejemplo "Ingrese un valor numérico: " me dibuje el campo o espacio donde el usuario ingrese el valor. Sería el equivalente a lo que se hace en el lenguaje Clipper 5.2. Un código como este:

n=0
clear
@5,1 say "Ingrese un valor numérico:" get n picture '999999'
read

En este caso el clipper ya viene con esa cláusula llamada PICTURE que es la que nos dibuja ese campo (El programita este muestra los caracteres blancos sobre un fondo negro y el campo que se dibuja es de color blanco donde lo que ingresa el usuario se ve negro, video invertido jajaja).

En C hacer un programa que pida el ingreso de un número sería así el código:

#include<stdio.h>
#include<conio.h>
void main(void)
{
int n;
clrscr();
gotoxy(1,5);printf("Ingrese un valor numérico: ");
scanf("%d",&n);
}

El tema que este programa en C mostraría el prompt (Mensaje de solicitud), pero después sólo el cursor titilante, pero no sabría cómo hacer para dibujar el campo video invertido, o sea crear el mismo efecto que en Clipper. Ayuda, please. Saludos. Nico :D


Título: Re: Dibujar campos ("cajas de texto") en c para MS-DOS
Publicado por: nicolas2013alcubo en 5 Mayo 2013, 16:03 pm
Rrspuesta, por favor...


Título: Re: Dibujar campos ("cajas de texto") en c para MS-DOS
Publicado por: nicolas2013alcubo en 5 Mayo 2013, 21:26 pm
Respondan que necesiti sacarme la duda esta


Título: Re: Dibujar campos ("cajas de texto") en c para MS-DOS
Publicado por: nicolas2013alcubo en 6 Mayo 2013, 14:42 pm
¿Por què no responden?. No es dificil entender lo que quiero hacer, ya que en absolutamente todos los programas de bases de datos que corrían bajo D.O.S (Programas de administración de comercios, farmacias, bancos, etx. aparecían constantemente cajas de texto donde el operador ingresaba por ejemplo el artículo de los producto, códigos de clientes, etc. Es lo más conocido que hay. En Clipper para crear cajas de texto se usa la cláusula PICTURE, C no tiene ninguna función para hacer eso, por lo que todo se hace manualmente. Respondanme cómo crear en C cajas de texto de forma manual. Es conocido eso.


Título: Re: Dibujar campos ("cajas de texto") en c para MS-DOS
Publicado por: -- KiLiaN -- en 6 Mayo 2013, 14:56 pm
Busca sobre librerías gráficas en el foro o en google.


Título: Re: Dibujar campos ("cajas de texto") en c para MS-DOS
Publicado por: BlackM4ster en 6 Mayo 2013, 15:13 pm
No te vamos a hacer el trabajo .__.
Busca en Google


Título: Re: Dibujar campos ("cajas de texto") en c para MS-DOS
Publicado por: rir3760 en 6 Mayo 2013, 15:29 pm
¿Por què no responden?.
Supongo se debe a que la ayuda aqui es voluntaria (en el tiempo libre), si a eso le sumas que tu pregunta es en Domingo ...

No es dificil entender lo que quiero hacer, ya que en absolutamente todos los programas de bases de datos que corrían bajo D.O.S
Los dias de Clipper y dBase IV sobre MS-DOS fueron hace unos veinte años ...

Para lo que deseas debes utilizar una biblioteca de terceros o el API de tu sistema operativo. En mi opinion lo mas facil es mediante ncurses, cuestion de buscar un buen curso.

Un saludo


Título: Re: Dibujar campos ("cajas de texto") en c para MS-DOS
Publicado por: nicolas2013alcubo en 6 Mayo 2013, 16:37 pm
Yo lo que encontrè en la librería conio.h son funciones que lo que hacen es cambiar el fondo y el color del texto en pantalla. Son textbackground y textcolor respectivamente. No sè si a ciencia cierta podrían ayudar a crear esos textboxes, pero calculo que se usan mucho wn el diseños de esos menúes en los que con las flechas de los cursores se "resalta" la opción a seleccionar y con Enter se confirma la seleccion. Para el que me dijo que no me ca a hacer el trabajo: Y si es fácil hacerlo, sólo es un ejemplo en que se pide el ingreso de un dato cualquiera y al lado del prompt me dibuje el cuadro de texto.


Título: Re: Dibujar campos ("cajas de texto") en c para MS-DOS
Publicado por: nicolas2013alcubo en 6 Mayo 2013, 17:33 pm
Chicos: Logré usar el textbackground y el textcolor para hacer un textbox. Observen el código fuente de mi programita:

#include<stdio.h>
#include<conio.h>
int main(void)
{
char nombre[20];
textbackground(BLUE);
textcolor(YELLOW);
clrscr();
gotoxy(9,10);cprintf("Tu nombre: ");
textbackground(WHITE);
textcolor(0);
gotoxy(20,10);cprintf("                    ");
gotoxy(20,10);
gets(nombre);
getch();
clrscr();
return 0;
}


El problema ahora es el siguiente: Si yo escribo sobre ese campo y me sobrepaso de los 20 caracteres yo puedo seguir escribiendo fuera del campo blanco (Sigo escribiendo lo que se me dé la gana fuera del textbox). ¡Cómo podría limitar la cantidad de caracteres que pueda escribir, cosa de no sobrepasarme de la caja de texto?. Raro, porque si yo defini char nombre[20]; estoy indicando que la cadena o string va a tener 20 caracteres, por lo que no debería seguir rescribiendo más de ahí. Ayuda, please. Saludos.