2016-04-16 9 views
0

Ich habe ein Textbox-Objekt erstellt und sein in Ereignisse erstellen schafft es Liste wieAufruf ds_list von diffrent Objektfehlern

lines = ds_list_create(); 

in Schritt Fall Textbox ich ds_list_add(lines, "line one"); verwenden und es funktioniert gut.

Jetzt habe ich ein diffrent Objekt, das vor dem Lesen ds_list_add(Textbox.lines, "line from diff object");

aber läuft es gibt Fehler zu var nicht gesetzt rufen versuchen. Ich habe auch versucht, auf global.list = ds_list_create(); und immer noch die gleichen Probleme zu ändern.

kann jemand erklären, wie ds_list von verschiedenen Objekt aufrufen.

+0

Wird ein Textfeld vor dem zweiten Objekt erstellt, an dem Sie versucht haben, neue Zeilen hinzuzufügen? (Raumeinstellungen - Instanzreihenfolge). Und wie viele Instanzen von Textbox haben Sie? – Dmi7ry

Antwort

0

Sie können ds_list_* Funktionen wie Sie richtig aufrufen. Sie müssen lediglich sicherstellen, dass die Datenstrukturen, auf die sich eine Funktion bezieht, tatsächlich existieren.

Ich versuchte das folgende für Testzwecke. Erstellen Sie zwei Objekte, objTextBox und objOther, und legen Sie ihre Ereignisse wie folgt fest.

Für Objekt objTextbox:

erstellen Ereignis
list = ds_list_create();

Press 'Space' Ereignis
var str = get_string("I'm objTextbox:","");
ds_list_add(list,str);

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

Für Objekt objOther:

Press 'Shift' Veranstaltung:
var str = get_string("I'm objOther:","");
ds_list_add(objTextbox.list,str);

Fügen Sie sie nun zu einem Raum hinzu und stellen Sie sicher, dass das erste zu erstellende Objekt objTextbox ist, das die ds_list erstellt. Lauf.

Wenn Sie mit Datenstrukturen arbeiten, stellen Sie immer sicher, dass sie erstellt wurden, bevor Sie mit ihnen arbeiten.

Verwandte Themen