Formlar menülerle aynı şekilde oluşturulur. Önce form ile ilgili alanlar new_field() ile oluşturulur. Alanlar için bir takım güzel özellikler ile gösterilmelerini sağlayan seçenekler tanımlayabilirsiniz: alandan imleci çekmeden önce alan içerisine yazılanı kontrol etmek v.b.. Daha sonra alanlar formlara ilintilenir. Bundan sonra form görüntülenmek için ve girdi almak için hazırdır. menu_driver() satırlarına benzer şekilde form için sürücü, form_driver() ile değiştirilir. form_driver'a bir takım istekler göndererek belli alanlara odaklanabiliriz, alanın sonuna konumlanabiliriz, v.b.. Kullanıcının alanlara veri girmesinden ve doğrulamanın yapılmasından sonra form ekrandan silinip ayrılan bellek alanları geri verilebilir.
Bir form programının genel akışı şu şekildedir:
Curses kipini ilklendirilir
new_field() kullanılarak alanlar oluşturulur. Alanın form üzerindeki konumu, yükseklik ve genişliğini tanımlayabilirsiniz.
Formlar kendilerine ilintilenecek alanlar ile birlikte new_form() kullanarak oluşturulur.
form_post() ile ekrana yazılır ve ekran tazelenir.
Bir döngü ile kullanıcıdan gelen istekleri işlenir ve form_driver ile gerekli güncelleştirmeler yapılır.
Form ekrandan form_unpost() ile silinir.
free_form() ile tahsis edilen bellek alanını geri verilir.
Alanlar için ayrılan bellek alanını free_item() ile geri verilir.
Curses kipi sonlandırılır.
Gördüğünüz gibi form kütüphanesi ile çalışmak menüler üzerinde işlemler yapmaya benzemektedir. Aşağıdaki örnekler form işlemenin değişik durumlarını gösterecektir. Basit bir örnekle yolculuğumuza başlayalım.