blackbirdthefirst
Mitglied
Hallo zusammen.
Ich würde gerne wissen wie man in ncurses Eingabefelder auch Editieren kann.
Ich benutze die form Library um verschieden Eingabe in ncurses machen zu können, das funktioniert soweit auch.
Das Problem ist das ich keine möglichkeit finde um die Eingebenen Daten auch wieder verändern zu können z.B. wenn man sich verschrieben hat.
Als Beispiel das Programm aus dem original ncurses Howto
Eigentlich ganz einfach, ich habe zwei eingezeilen zwischen den ich mit Hoch und Runter wechseln kann. Ich kann auch fröhlich was in die Felder reinschreiben.
ABER Ich kann sie nicht mehr verändern.
Hat vielleicht jemand eine Idee wie das zu bewerkstelligen ist
Vielen Dank im Vorraus.
Ich würde gerne wissen wie man in ncurses Eingabefelder auch Editieren kann.
Ich benutze die form Library um verschieden Eingabe in ncurses machen zu können, das funktioniert soweit auch.
Das Problem ist das ich keine möglichkeit finde um die Eingebenen Daten auch wieder verändern zu können z.B. wenn man sich verschrieben hat.
Als Beispiel das Programm aus dem original ncurses Howto
Code:
#include <form.h>
int main()
{ FIELD *field[3];
FORM *my_form;
int ch;
/* Initialize curses */
initscr();
cbreak();
noecho();
keypad(stdscr, TRUE);
/* Initialize the fields */
field[0] = new_field(1, 10, 4, 18, 0, 0);
field[1] = new_field(1, 10, 6, 18, 0, 0);
field[2] = NULL;
/* Set field options */
set_field_back(field[0], A_UNDERLINE); /* Print a line for the option */
field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
/* Field is filled up */
set_field_back(field[1], A_UNDERLINE);
field_opts_off(field[1], O_AUTOSKIP);
/* Create the form and post it */
my_form = new_form(field);
post_form(my_form);
refresh();
mvprintw(4, 10, "Value 1:");
mvprintw(6, 10, "Value 2:");
refresh();
/* Loop through to get user requests */
while((ch = getch()) != KEY_F(1))
{ switch(ch)
{ case KEY_DOWN:
/* Go to next field */
form_driver(my_form, REQ_NEXT_FIELD);
/* Go to the end of the present buffer */
/* Leaves nicely at the last character */
form_driver(my_form, REQ_END_LINE);
break;
case KEY_UP:
/* Go to previous field */
form_driver(my_form, REQ_PREV_FIELD);
form_driver(my_form, REQ_END_LINE);
break;
default:
/* If this is a normal character, it gets */
/* Printed */
form_driver(my_form, ch);
break;
}
}
/* Un post form and free the memory */
unpost_form(my_form);
free_form(my_form);
free_field(field[0]);
free_field(field[1]);
endwin();
return 0;
}
Eigentlich ganz einfach, ich habe zwei eingezeilen zwischen den ich mit Hoch und Runter wechseln kann. Ich kann auch fröhlich was in die Felder reinschreiben.
ABER Ich kann sie nicht mehr verändern.
Hat vielleicht jemand eine Idee wie das zu bewerkstelligen ist
Vielen Dank im Vorraus.