从不同的对象错误调用 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_*
函数。只是,您必须确保函数所引用的数据结构确实存在。
出于测试目的,我尝试了以下方法。创建两个对象,objTextBox
和 objOther
,并将它们的事件设置如下。
对于对象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