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

Я пишу простую программу чата в 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 ответ

Решение

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

В вашем примере вы звоните 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 процедура.

Другие вопросы по тегам