GtkAda简单的聊天错误

时间:2012-01-19 10:32:37

标签: gtk ada

我正在Ada中编写简单的聊天程序,我遇到了聊天窗口模拟的问题 - 点击按钮,它会读取文本表单条目并将其放在text_view上。这是我写的code,这里是编译输出:

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 个答案:

答案 0 :(得分:1)

您必须调用正确的程序/功能。

在您的示例中,您拨打的是Gtk.Text_Buffer.Get_Buffer,而不是正确的Gtk.Text_View.Get_Buffer。这是因为您withuse Gtk.Text_Buffer,但不是use Gtk.Text_View。你应该小心use。 Get_Text也是如此。

如果您为Gtk.Text_View和Gtk.GEntry添加use子句,则这些错误应该会消失。

但我给你一个建议:尝试使用尽可能少的use条款。这样你总能知道真正调用的函数。

TLDR:use Gtk.Text_View; use Gtk.GEntry;添加到On_Btn_Send_Clicked程序的声明部分。

相关问题