eine Variable auf Existenz überprüfen

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • eine Variable auf Existenz überprüfen

    Guten Morgen,

    mit "exists" kann man so ziemlich alles auf seine Existenz überprüfen: Sprites, Instancen, Räume, Tiles, Arrays - einfach alles. Nur das, was ich brauche, nämlich eine Variable auf ihre Existenz zu überprüfen, kann ich nirgends finden. In der Hilfe nicht und hier im Forum auch nicht.

    Geht das vielleicht gar nicht? Die Anweisung "if exists (Variablenname)" jedenfalls führt nur zu einer Fehlermeldung.
    Wie kann man denn eine Variable auf ihre Existenz überprüfen??

    Danke schon mal im voraus,
    CB
  • Moinsen!

    Ich weiß leider nicht, welche GameMaker-Version
    du hast, aber probiers mal hiermit:

    (Getestet im GameMaker 8.1 Standard)

    Beispiel: "global.variable"

    GML-Quellcode

    1. if(variable_global_exists("variable")){
    2. show_message("Ich existiere! Yay! :D");
    3. }


    MfG. SnakeEye
  • Whow, klasse - danke Euch Beiden für die Auskunft! Werde ich gleich mal umsetzen.

    Ich hab stundenlang nach einer solchen Anweisung gesucht, aber wirklich nirgends gefunden!
    Dank + Gruss,

    CB

    Also: ich hab das jetzt mal getestet. Da es sich bei mir um eine globale Variable handelt, habe ich auch diese Variante gewählt. Funzt ganz gut - solange es diese Variable auch gibt.

    Aber: existiert sie nicht und das Programm kommt an diese Stelle:

    GML-Quellcode

    1. if variable_global_exists(global.variablenname)


    dann bricht das Programm tatsächlich ab mit der Meldung: "Variable nicht gefunden!" Genau das soll er ja überprüfen - aber doch nicht an der Stelle dann einfach abbrechen!??! *grummel* Ist das noch "normal"?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Counter-Bike ()

  • Counter-Bike schrieb:

    Also: ich hab das jetzt mal getestet. Da es sich bei mir um eine globale Variable handelt, habe ich auch diese Variante gewählt. Funzt ganz gut - solange es diese Variable auch gibt.

    Aber: existiert sie nicht und das Programm kommt an diese Stelle:

    GML-Quellcode

    1. if variable_global_exists(global.variablenname)


    dann bricht das Programm tatsächlich ab mit der Meldung: "Variable nicht gefunden!" Genau das soll er ja überprüfen - aber doch nicht an der Stelle dann einfach abbrechen!??! *grummel* Ist das noch "normal"?
    Also in dem Fall würde ich im Code festlegen, was das Programm machen soll, wenn die
    Variable nicht existiert. Also:

    GML-Quellcode

    1. if(variable_global_exists("variable")){
    2. show_message("Ich existiere! Yay! :D");
    3. }else{
    4. show_message("Ich existiere nicht! *schnüff* :(");
    5. }


    Den Teil im "else" kannst du dann quasi weglassen, wenn bei fehlender Variable nichts passieren soll. ;D

    EDIT: Okay, es lag nicht daran, es lag an deiner Schreibweise! Siehe Eintrag von henrik1235.
    Wie konnte ich das übersehen? :pinch: Nunja, damit sollte das Problem gelöst sein. ;)

    MfG. SnakeEye

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von TheSnakeEye ()

  • dann bricht das Programm tatsächlich ab mit der Meldung: "Variable nicht gefunden!" Genau das soll er ja überprüfen - aber doch nicht an der Stelle dann einfach abbrechen!??! *grummel* Ist das noch "normal"?
    Die Funktionen erwarten den Namen als String, d.h. in " ".
    Richtig wäre:

    GML-Quellcode

    1. if variable_global_exists("variablenname")
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • TheSnakeEye schrieb:

    Also in dem Fall würde ich im Code festlegen, was das Programm machen soll, wenn die
    Variable nicht existiert. Also:
    Na genau das geht ja nicht, scherzkeks! Hab ich doch extra geschrieben. ;)

    henrik1235 schrieb:

    Die Funktionen erwarten den Namen als String, d.h. in " ".

    Das wird es sein! Das hab ich nicht gemacht, das teste ich jetzt gleich mal aus! Danke für den Hinweis. Dachte, der Name der Variablen wäre ok.
    Thx,

    CB