GtkAda простая ошибка чата - PullRequest
       16

GtkAda простая ошибка чата

0 голосов
/ 19 января 2012

Я пишу простую программу чата на Ada, и у меня возникли проблемы с симуляцией окна чата - при нажатии на кнопку она читает текстовую форму и помещает ее в text_view.Вот код , который я написал, и вот результат компиляции:

gnatmake client `gtkada-config`
gcc -c -I/usr/include/gtkada client_pkg.adb
client_pkg.adb:14:19: no candidate interpretations match the actuals:
client_pkg.adb:14:37: expected private type "Gtk_Text_Iter" defined at gtk-text_iter.ads:48
client_pkg.adb:14:37: found type "Gtk_Text_View" defined at gtk-text_view.ads:58
client_pkg.adb:14:37:   ==> in call to "Get_Buffer" at gtk-text_buffer.ads:568
client_pkg.adb:14:37:   ==> in call to "Get_Buffer" at gtk-text_buffer.ads:407
client_pkg.adb:15:34: no candidate interpretations match the actuals:
client_pkg.adb:15:34: missing argument for parameter "Start" in call to "Get_Text" declared at gtk-text_buffer.ads:283
client_pkg.adb:15:34: missing argument for parameter "Start" in call to "Get_Text" declared at gtk-text_buffer.ads:270
gnatmake: "client_pkg.adb" compilation error

Может кто-нибудь сказать мне, в чем проблема, так как я понятия не имею, почему процедура Get_Buffer ожидаетGtk_Text_Iter, а почему Get_Text отсутствует параметр Start?

1 Ответ

1 голос
/ 25 января 2012

Вы должны вызвать правильные процедуры / функции.

В вашем примере вы звоните Gtk.Text_Buffer.Get_Buffer, а не правильный Gtk.Text_View.Get_Buffer. Это потому, что вы with и use Gtk.Text_Buffer, но не use Gtk.Text_View. Вы должны быть осторожны, что вы use. То же самое для Get_Text.

Если вы добавите предложения use для Gtk.Text_View и Gtk.GEntry, эти ошибки должны исчезнуть.

Но я даю вам совет: старайтесь использовать как можно меньше use предложений. Таким образом, вы всегда знаете, какая функция действительно вызывается.

TLDR: Добавьте use Gtk.Text_View; use Gtk.GEntry; к части объявления процедуры On_Btn_Send_Clicked.

...