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

Я пишу простую программу чата на Аде, и у меня проблема с симуляцией окна чата - при нажатии кнопки он читает запись текстовой формы и помещает ее в 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?


person thim    schedule 19.01.2012    source источник
comment
Возможно, было бы неплохо обновить исходный вопрос, окно чата с Gtk+.   -  person trashgod    schedule 20.01.2012


Ответы (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.

person Rommudoh    schedule 25.01.2012