2016-04-16 9 views
0

Я создал объект текстового поля и его создать событие создает список каквызова ds_list от ошибок diffrent объекта

lines = ds_list_create(); 

в событии шага текстового поля я использую ds_list_add(lines, "line one"); и она отлично работает.

Теперь у меня есть diffrent объект, который пытается называть ds_list_add(Textbox.lines, "line from diff object");

но работает он дает ошибку о варе не установлен перед чтением. Я также попытался изменить на global.list = ds_list_create(); и все те же проблемы.

может кто-нибудь объяснить, как позвонить ds_list с другого объекта.

+0

Создан ли объект текстового поля перед вторым объектом, где вы пытались добавить новые строки? (параметры комнаты - порядок экземпляра). И сколько экземпляров текстового поля у вас есть? – Dmi7ry

ответ

0

Вы можете позвонить ds_list_* функциям, как вы. Просто вы должны убедиться, что структуры данных, на которые ссылается функция, действительно существуют.

Я попробовал следующее для целей тестирования. Создайте два объекта: objTextBox и objOther и установите их следующие события.

Для объекта objTextbox:

Создать Event
list = ds_list_create();

Нажмите 'Space' Event
var str = get_string("I'm objTextbox:","");
ds_list_add(list,str);

Draw Event
for (var i=0;i<ds_list_size(list);i++)
draw_text(10,10+15*i,string(ds_list_find_value(list,i)));

Для объекта objOther:

Нажмите 'Смена' Событие:
var str = get_string("I'm objOther:","");
ds_list_add(objTextbox.list,str);

Теперь добавьте их в комнату и убедитесь, что первый объект будет создан: objTextbox, который создает ds_list. Запустить.

При работе с структурами данных всегда убедитесь, что они были созданы до работы с ними.