Campo de Texto
Publicado por Esteban Andrade (3 intervenciones) el 07/11/2008 17:42:22
Espero que por favor puedan ayudarme.
Lo que necesito es hacer alguna función para un campo de texto que me permita seleccionar lo que el usuario ingrese.
Por ejemplo, yo implementé una función a la que llamé
char *Leer(int X, int Y, int space, int c1, int c2).
En donde X y Y son las coordenadas cartesianas en donde se colocará el cuadro de texto. space corresponde a la cantidad de caracteres que aceptara y c1, c2, corresponden a los colores que tendrá el valor ingresado después de salir del campo de texto.
Ahora bien, el problema es que si el usuario quiere seleccionar (Shift+Izq) un área de la cadena ingresada, no lo puede hacer.
Esta es mi rutina:
char *Leer(int x, int y, int space, int cf, int cb) {
char buffer[80];
char *valor;
buffer[0] = space+1;
gotoxy(x,y);
textcolor(15);
textbackground(3);
for(int i = x; i < x+space+2; i++) { cprintf("%c", ' '); }
gotoxy(x+1, y);
valor = cgets(buffer);
gotoxy(x,y);
textcolor(cf);
textbackground(cb);
for(i = x; i < x+space+2; i++) { cprintf("%c", ' '); }
gotoxy(x+1, y);
cprintf("%s", valor);
return valor;
}
Espero que me puedan ayudar.
Lo que necesito es hacer alguna función para un campo de texto que me permita seleccionar lo que el usuario ingrese.
Por ejemplo, yo implementé una función a la que llamé
char *Leer(int X, int Y, int space, int c1, int c2).
En donde X y Y son las coordenadas cartesianas en donde se colocará el cuadro de texto. space corresponde a la cantidad de caracteres que aceptara y c1, c2, corresponden a los colores que tendrá el valor ingresado después de salir del campo de texto.
Ahora bien, el problema es que si el usuario quiere seleccionar (Shift+Izq) un área de la cadena ingresada, no lo puede hacer.
Esta es mi rutina:
char *Leer(int x, int y, int space, int cf, int cb) {
char buffer[80];
char *valor;
buffer[0] = space+1;
gotoxy(x,y);
textcolor(15);
textbackground(3);
for(int i = x; i < x+space+2; i++) { cprintf("%c", ' '); }
gotoxy(x+1, y);
valor = cgets(buffer);
gotoxy(x,y);
textcolor(cf);
textbackground(cb);
for(i = x; i < x+space+2; i++) { cprintf("%c", ' '); }
gotoxy(x+1, y);
cprintf("%s", valor);
return valor;
}
Espero que me puedan ayudar.
Valora esta pregunta


0