从不同的对象错误调用 ds_list

Posted

技术标签:

【中文标题】从不同的对象错误调用 ds_list【英文标题】:call ds_list from diffrent object error 【发布时间】:2016-04-16 04:30:27 【问题描述】:

我创建了一个文本框对象,并在它的创建事件中创建了类似的列表

lines = ds_list_create();

在文本框的步骤事件中我使用ds_list_add(lines, "line one"); 而且效果很好。

现在我有一个不同的对象尝试调用ds_list_add(Textbox.lines, "line from diff object");

但是在运行时它会给出关于 var not set before reading 的错误。我也试过改成global.list = ds_list_create();,还是一样的问题。

有人可以解释如何从不同的对象调用ds_list

【问题讨论】:

文本框对象是在您尝试添加新行的第二个对象之前创建的吗? (房间设置 - 实例顺序)。你有多少个文本框实例? 【参考方案1】:

您可以像以前一样调用ds_list_* 函数。只是,您必须确保函数所引用的数据结构确实存在。

出于测试目的,我尝试了以下方法。创建两个对象,objTextBoxobjOther,并将它们的事件设置如下。

对于对象objTextbox

创建事件list = ds_list_create();

按“空格”事件var str = get_string("I'm objTextbox:","");ds_list_add(list,str);

绘图事件for (var i=0;i<ds_list_size(list);i++)draw_text(10,10+15*i,string(ds_list_find_value(list,i)));

对于对象 objOther:

按下 'Shift' 事件:var str = get_string("I'm objOther:","");ds_list_add(objTextbox.list,str);

现在将它们添加到房间,并确保要创建的第一个对象是 objTextbox,也就是创建 ds_list 的对象。运行。

在处理数据结构时,请始终确保在使用它们之前已创建它们。

【讨论】:

以上是关于从不同的对象错误调用 ds_list的主要内容,如果未能解决你的问题,请参考以下文章

Reanimated 中的错误“试图从不同的线程同步调用函数 res”

Grid.children.clear 线程错误 xmpp wpf

为啥从内部类调用特定于对象的方法/字段时没有抛出任何错误?

从指向对象的指针调用成员函数指针时调用错误的函数

从 n = 8 开始的错误:“调用 Python 对象时超出了最大递归深度”[重复]

如何从现有对象的不同类调用方法(Obj C)