1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Di: 01 Juli 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    Button nach einer Auswahl in der ListBox deaktivieren oder aktivieren

      • Altis Life
    • fixle2011
    • 15. August 2020 um 16:12
    • Erledigt
    • fixle2011
      Amateur
      Reaktionen
      5
      Trophäen
      8
      Beiträge
      241
      • 15. August 2020 um 16:12
      • #1

      Heyho liebe Freunde des SQF-Wahnsinns,

      ich habe folgendes Problem:

      Ich habe eine ListBox in Altis Life erstellt und möchte nun nach bestimmten Selektionen in dieser Box im Dialog einen Button aktivieren beziehungsweise deaktivieren.

      Auf gut Deutsch: Wenn der Spieler in der Listbox den Eintrag mit der ID 1 auswählt, soll der Button aktivieren sein, wenn er den Eintrag mit der ID 2 auswählt soll er deaktiviert sein.

      Jetzt ist die Frage wie man das ganze bewerkstelligen kann...

      Klar ist, dass man hier mit lbIsSelected arbeiten muss, allerdings habe ich momentan keine Ahnung wie ich das ganze dynamisch implementieren kann. Denn der Spieler soll im Nachgang zwischen mehreren ID's hin und her auswählen können und je nach dem was er auswählt, soll dann ausschlaggebend für die Aktivierung oder Deaktivierung des Buttons sein.

      Ich hoffe ihr habt ein paar Ideen die mir weiterhelfen können.

      Liebe Grüße!

      source.gif

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 15. August 2020 um 17:32
      • #2
      Zitat von fixle2011

      Heyho liebe Freunde des SQF-Wahnsinns,

      ich habe folgendes Problem:

      Ich habe eine ListBox in Altis Life erstellt und möchte nun nach bestimmten Selektionen in dieser Box im Dialog einen Button aktivieren beziehungsweise deaktivieren.

      Auf gut Deutsch: Wenn der Spieler in der Listbox den Eintrag mit der ID 1 auswählt, soll der Button aktivieren sein, wenn er den Eintrag mit der ID 2 auswählt soll er deaktiviert sein.

      Jetzt ist die Frage wie man das ganze bewerkstelligen kann...

      Klar ist, dass man hier mit lbIsSelected arbeiten muss, allerdings habe ich momentan keine Ahnung wie ich das ganze dynamisch implementieren kann. Denn der Spieler soll im Nachgang zwischen mehreren ID's hin und her auswählen können und je nach dem was er auswählt, soll dann ausschlaggebend für die Aktivierung oder Deaktivierung des Buttons sein.

      Ich hoffe ihr habt ein paar Ideen die mir weiterhelfen können.

      Liebe Grüße!

      Alles anzeigen

      Naja in der HPP kannst du den Parameter onLBSelChanged angeben.

      Dort ein SQF Script hinterlegen, welches nach lbText, lbValue oder lbData filtert.

      und dann dementsprechend mit if filtern und mit ctrlEnable oder mit ctrlActivate arbeiten.


      Mit freundlichen Grüßen

      Joe Barbaro

      Entwickler vom Arma 3 Batch Generator


    • fixle2011
      Amateur
      Reaktionen
      5
      Trophäen
      8
      Beiträge
      241
      • 15. August 2020 um 17:46
      • #3

      Gibt es keine einfachere Methode? Das ist ja bescheuer wenn man für jeden Wechsel prüfen muss...

      source.gif

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 15. August 2020 um 18:15
      • #4
      Zitat von fixle2011

      Gibt es keine einfachere Methode? Das ist ja bescheuer wenn man für jeden Wechsel prüfen muss...

      Warum denn einfacher?

      Mit Sicherheit gibt es noch andere Wege aber das ist mMn für dich das einfachste.


      Mit freundlichen Grüßen

      Joe Barbaro

      Entwickler vom Arma 3 Batch Generator


    • fixle2011
      Amateur
      Reaktionen
      5
      Trophäen
      8
      Beiträge
      241
      • 15. August 2020 um 18:50
      • #5

      Ich werde es mal ausprobieren ^^.

      Falls etwas nicht klappt, melde ich mich nochmal. Schon mal vielen Dank für deine Hilfe ;).

      source.gif

    • Basti0208
      Schüler
      Reaktionen
      58
      Trophäen
      10
      Beiträge
      138
      Dateien
      1
      • 15. August 2020 um 19:45
      • #6

      Einfacher wird es nicht gehen, weil du ein Event brauchst, das getriggert wird und danach kannst du deinen Code ausführen.

      Mit freundlichen Grüßen

      Basti

    • fixle2011
      Amateur
      Reaktionen
      5
      Trophäen
      8
      Beiträge
      241
      • 15. August 2020 um 20:42
      • #7

      Mit HPP meinst du die Datei, in der meine Box liegt, oder?

      source.gif

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 15. August 2020 um 22:40
      • #8
      Zitat von fixle2011

      Mit HPP meinst du die Datei, in der meine Box liegt, oder?

      Jap der Dialog

      Entwickler vom Arma 3 Batch Generator


    • fixle2011
      Amateur
      Reaktionen
      5
      Trophäen
      8
      Beiträge
      241
      • 15. August 2020 um 22:58
      • #9

      Irgendwas habe ich wieder verbockt:

      Code: Mein Code
              class MeineBox: ListBox
              {
                  idc = 20056;
                  text = "";
                  sizeEx = 1.234;
                  x = 0.432143 * safezoneW + safezoneX;
                  y = 0.543234 * safezoneH + safezoneY;
                  w = 0.123433 * safezoneW;
                  h = 0.654345 * safezoneH;
                  _this addEventHandler ["onLBSelChanged", {_check = execVM [] "MeinSkript.sqf"}];
              };
      Alles anzeigen

      Er wirf mir einen Fehler aus, ich glaube er streubt sich gegen das _this, aber was soll ich sonst als Objekt angeben? Die Klasse?

      source.gif

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 15. August 2020 um 23:02
      • #10
      Code
              class MeineBox: Life_RSCListBox
              {
                  idc = 20056;
                  text = "";
                  sizeEx = 1.234;
                  x = 0.432143 * safezoneW + safezoneX;
                  y = 0.543234 * safezoneH + safezoneY;
                  w = 0.123433 * safezoneW;
                  h = 0.654345 * safezoneH;
                  onLBSelChanged = "_this call life_fnc_spawnPointSelected;";
              };
      Alles anzeigen

      Schau dir doch sonst im AL Framework an wies geht.

      Entwickler vom Arma 3 Batch Generator


    • fixle2011
      Amateur
      Reaktionen
      5
      Trophäen
      8
      Beiträge
      241
      • 16. August 2020 um 19:54
      • #11

      Ich habe das jetzt hin und her getestet...

      Fazit: Es passiert gar nichts, es kommt keine Fehlermeldung und auch sonst nichts. Ich denke, dass er das Event nicht ausführt oder ähnliches...

      Im Skript das ausgeführt werden soll, steht schlicht ein hint "Test"; mit einem sleep 4; davor. Allerdings wird mir das nicht ausgegeben, noch tritt eine Fehlermeldung oder ähnliches im Bezug auf den EventHandler oder das auszuführende Skript auf.

      source.gif

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 16. August 2020 um 20:16
      • #12

      Dann schick doch mal den part vom Dialog und das Script welches ausgeführt werden soll hier rein.


      Mit freundlichen Grüßen

      Joe Barabaro

      Entwickler vom Arma 3 Batch Generator


    • fixle2011
      Amateur
      Reaktionen
      5
      Trophäen
      8
      Beiträge
      241
      • 16. August 2020 um 20:25
      • #13

      Ist im Anhang.

      (Musste den Dialog für den Upload in eine SQF packen, also nicht wundern.)

      source.gif

      Einmal editiert, zuletzt von fixle2011 (17. August 2020 um 14:53)

    • fixle2011
      Amateur
      Reaktionen
      5
      Trophäen
      8
      Beiträge
      241
      • 16. August 2020 um 22:11
      • #14

      Nochmal an alle, wir haben noch keine Lösung gefunden, es gibt weder eine Fehlermeldung, noch passiert irgendetwas.

      Auch mit onLoad passiert nichts.

      source.gif

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 16. August 2020 um 23:42
      • #15

      Dann fangen wir mal an: Joe Barbaro hat dir bereits den richtigen Weg aufgezeigt und dir alle notwendigen Infos gegeben.

      Grundsätzlich ist dein bisheriger Code nicht komplett falsch. Allerdings sind einige Syntaxfehler vorhanden, die garantiert auch Fehler in der Log schmeißen!

      Richtig ist schonmal der Eintrag um den Eventhandler zu erstellen: onLBSelChanged = "<CODE>";

      Allerdings der Code darin ist mit größter Wahrscheinlichkeit falsch: [] call fn_MeineFunktion;

      Denn du versuchst den Code in der Variable fn_MeineFunktion auszuführen.

      Wenn dies aber eine Funktion sein soll, dann wäre der Aufruf folgender: <TAG>_fnc_MeineFunktion

      Die Datei heißt aber trotzdem fn_MeineFunktion. Die Funktion muss aber zuvor in der CfgFunctions eingetragen sein.

      Hier mal die Dokumentation dazu: https://community.bistudio.com/wiki/Arma_3_Fu…ding_a_Function

      Wenn die Funktion richtig erstellt wurde, dann lautet der Code in der Liste im Dialog so:

      onLBSelChanged = "[_this] call <TAG>_fnc_MeineFunktion";

      In deiner Funktion kannst du dann die übergebenen Parameter nutzen und entsprechend reagieren.

      Der Code könnte dann z.B. so aussehen:

      Code
      // Liest die Parameter und speichert sie in Variablen
      params ["_control", "_selectedIndex"];
      
      // Speichert den Button, der de/aktiviert werden soll in einer Variablen
      private _button = ctrlParent _control displayCtrl <IDC>;
      
      // de/aktiviert den Button abhängig der Bedingung
      _button ctrlEnable (_control lbValue _selectedIndex isEqualTo 1)

      Weiterer Hinweis:

      EventHandler sind unscheduled. Das bedeutet, dass es nicht möglich ist dort sleep auszuführen.

      Um sleep zu nutzen, muss der Code scheduled ausgeführt werden, bedeutet die Funktion müsste mit einem spawn aufgerufen werden.

    • fixle2011
      Amateur
      Reaktionen
      5
      Trophäen
      8
      Beiträge
      241
      • 17. August 2020 um 15:35
      • #16

      Ich kann beruhigen. In der Syntax gab es keinen Fehler, ich habe nur etwas faul die Namen hier wiedergegeben. Die Syntax und Definitionen mit den Tags der Funktionen wurde alle getätigt. Ich habe mittlerweile den Fehler gefunden, es war ein kleiner und ganz unscheinbarer Tippfehler, allerdings ist dieser durch die fehlenden Fehlermeldungen in den Logs erst später aufgefallen.

      Henne Ich habe den Aufruf der Funktion mit einem hint geprüft und nun funktioniert zumindest das Aufrufen der Funktion wie gewünscht.

      Ganz faul habe ich mal deinen Code übernommen und geguckt was passiert: Nichts. Und schon wieder keine Fehlermeldung xD.

      Irgendwie ist der Wurm drinnen!

      Im Angang alles war man brauchen könnte, ich werde einfach nicht schlau draus...

      Dateien

      ClienLog.rpt 74,62 kB – 215 Downloads fn_MeineFunktion.sqf 176 Byte – 144 Downloads MeinDialog.sqf 1,79 kB – 150 Downloads ServerLog.rpt 111,12 kB – 219 Downloads

      source.gif

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 17. August 2020 um 16:23
      • #17

      Du sagst also, dass es keine Fehlermeldungen gibt? Was ist dann das:

      Code
      15:28:10 Error in expression <Enable (_control lbValue _selectedIndex isEqualtTo 200, false);>
      15:28:10   Error position: <isEqualtTo 200, false);>
      15:28:10   Error Fehlende )
      15:28:10 File functions\fn_wanted_ListBox_check.sqf [XY_fnc_wanted_ListBox_check]..., line 5

      Du sagst, du hast meinen Code einfach so übernommen? Was ist dann das:

      Mein Code: _button ctrlEnable (_control lbValue _selectedIndex isEqualTo 1)
      Dein Code: _button ctrlEnable (_control lbValue _selectedIndex isEqualtTo 200, false);

      Keine Ahnung was du da genau versuchst, solltest du aber eigentlich selber lösen können.

    • fixle2011
      Amateur
      Reaktionen
      5
      Trophäen
      8
      Beiträge
      241
      • 17. August 2020 um 17:07
      • #18

      Das war nur eine Spielerei aufgrund der Wiki-Syntax, ich habe es vorher ohne false ausprobiert. Geht auch nicht ;).

      source.gif

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 17. August 2020 um 17:09
      • #19

      Hast du einfach mal probiert meinen Code zu kopieren und die Zahl 1 mit deiner 200 auszutauschen?

    • fixle2011
      Amateur
      Reaktionen
      5
      Trophäen
      8
      Beiträge
      241
      • 17. August 2020 um 17:42
      • #20

      Ja, habe ich ja. Steht ja auch so in der angehängten Datei.

      source.gif

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™