【问题标题】:GtkAda simple chat errorGtkAda简单聊天错误
【发布时间】:2012-01-19 10:32:37
【问题描述】:

我正在 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 缺少启动参数?

【问题讨论】:

标签: gtk ada


【解决方案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 过程的声明部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多