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
процедура.