Как двигать поля в виде медсестер - PullRequest
0 голосов
/ 16 марта 2020

Я написал программу на C, используя ncurses и специальные формы. Мне нужно, чтобы определенное поле моей формы двигалось, когда я заполняю форму. Я пробовал move_field, но это не работает. Вот как я это написал:

if (typact==ADSD && rowc>rowg )
    { 
      move_field(field[ietg],rowg=rowc,colg); 
      refresh();
    }

Я уверен, что move_field выполняется (я использую xCode для отладки моей программы). Я полагаю, что refre sh недостаточно. Я попытался также поместить move_field между unpost_form и post_form следующим образом:

if (typact==ADSD && rowc>rowg /* && !field_status(field[ietg]) */ )
    { unpost_form(my_form);
      move_field(field[ietg],rowg=rowc,colg); 
      post_form(my_form); refresh();
    }

, но это снова не работает. Форма стирается и повторно публикуется без написанных мною текстов, а поле всегда в одном месте.

Как я могу использовать move_field?

1 Ответ

0 голосов
/ 16 марта 2020

Страница руководства сообщает

Функция move_field перемещает указанное поле (, которое должно быть отключено ), в указанное местоположение на экране.

Вы можете отключить поле, получив текущий список полей с form_fieldsего длина с использованием field_count), удаление поля из этого списка и обновление списка с использованием set_form_fields.

При использовании move_field вы также должны (временно) отменить форму с помощью unpost_form. В противном случае move_field возвращает E_POSTED ( Форма уже отправлена ​​). После перемещения поля используйте post_form, чтобы заставить драйвер формы работать с обновленной формой.

Файл test/move_field.c в источниках ncurses предоставляет Пример этих звонков.

...