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
Mo: 30 Juni 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

    Problem mit Listbox und Button (Switch Case)

    • Dr_Perl
    • 1. März 2019 um 19:06
    • Erledigt
    • Dr_Perl
      Anfänger
      Trophäen
      7
      Beiträge
      35
      • 1. März 2019 um 19:06
      • #1

      Hallo,

      hier das Problem:

      Es gibt eine Listbox die befüllt ist und einen Button. Wenn der Button gedrückt wird, soll, je nach dem welches item selektiert wurde, eine andere Aktion ausgeführt werden..

      Das befüllen der Liste war kein Problem und die funktion wird beim Drücken auch "abgefeuert"..

      Also bis dahin läuft alles.


      Hier der code zur der "kgport.sqf".. (die Listbox hat auch die ID 99001) (Hatte das einfach übernommen aus der UseItem.sqf und abgeändert...)
      (kgport ist auch in der Funktions.hpp drin..)

      Code
      private "_item";
      disableSerialization;
      if ((lbCurSel 99001) isEqualTo -1) exitWith {hint "Du hast kein Event ausgewählt!";};
      _item = CONTROL_DATA(99001);
      
      switch (true) do {
      
          case (_item isEqualTo "Test1"): {
              systemChat "** KG PORT **"
              closeDialog 0;
          };
      
          default {
              hint "Dieses Event ist noch in Arbeit.";
          };
          
      };
      Alles anzeigen

      Das Item "Test1" ist auch in der Liste drin..

      Ich versteh einfach nicht warum nichts passiert.. Nichtmal in die default Situation geht er rein.. Als würde er die Control nicht erkennen.. ;(

      Kann mir jemand helfen? :)

    • Basti0208
      Schüler
      Reaktionen
      58
      Trophäen
      10
      Beiträge
      138
      Dateien
      1
      • 1. März 2019 um 20:19
      • #2

      Hallo Dr_Perl,

      erstmal wäre es schön, wenn du uns deinen RPT Log zeigen würdest, sowie das Skript, welches die Listbox befüllt bzw den dazugehörigen Dialog.

      Dann könnten wir dir besser helfen :D

      Trotzdem fallen mir direkt zwei Sachen auf.

      1. Beim systemchat im Case 1 fehlt ein Semikolon
      2. Um ein Makro, in deinem Fall "CONTROL_DATA", benutzen zu können, musst du die script_macros.hpp einbinden

      Mit freundlichen Grüßen

      Basti | John Collins

      Mit freundlichen Grüßen

      Basti

    • Dr_Perl
      Anfänger
      Trophäen
      7
      Beiträge
      35
      • 1. März 2019 um 20:34
      • #3
      Zitat von Basti0208

      Hallo Dr_Perl,

      erstmal wäre es schön, wenn du uns deinen RPT Log zeigen würdest, sowie das Skript, welches die Listbox befüllt bzw den dazugehörigen Dialog.

      Dann könnten wir dir besser helfen :D

      Trotzdem fallen mir direkt zwei Sachen auf.

      1. Beim systemchat im Case 1 fehlt ein Semikolon
      2. Um ein Makro, in deinem Fall "CONTROL_DATA", benutzen zu können, musst du die script_macros.hpp einbinden

      Mit freundlichen Grüßen

      Basti | John Collins

      Alles anzeigen

      In Log steht nichts diesbezüglich..

      #include "..\..\script_macros.hpp" hatte ich vergessen mitzukopieren.. Also war die ganze Zeit auch mit drin.

      Das ist der jetzige Code zum befüllen:

      Code
      _index = _kglist lbAdd "Item 1";
      _kglist lbSetData [_index,_index];
      
      _index = _kglist lbAdd "Item 2";
      _kglist lbSetData [_index,"_index"];


      Und hier der Code der jetztige vom Button ausgelöst wird (hab was Neues ausgetestet, leider ohne erfolg)..

      Code
      #include "..\..\script_macros.hpp" 
      // get items
      _ctrl = CONTROL(2001,99001);
      _item = switch (_ctrl lbData (lbCurSel _ctrl)) do {
          case "Item 1": {systemChat "1";};
          case "Item 2": {systemChat "2";};
          default {systemChat "-";};
      };


      Edit: Nope.. geht immer noch nicht.. aber er geht in die default Situation.. Muss also am Auslesen des Eintrags liegen..

      2 Mal editiert, zuletzt von Dr_Perl (1. März 2019 um 20:49) aus folgendem Grund: CONTROL_DATA(99001); muss natürlich zu CONTROL(2001,99001); Grad am austesten...

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 1. März 2019 um 21:54
      • #4
      Zitat von Dr_Perl
      Code
      _index = _kglist lbAdd "Item 1";
      _kglist lbSetData [_index,_index];
      
      _index = _kglist lbAdd "Item 2";
      _kglist lbSetData [_index,"_index"];
      Code
      #include "..\..\script_macros.hpp" 
      // get items
      _ctrl = CONTROL(2001,99001);
      _item = switch (_ctrl lbData (lbCurSel _ctrl)) do {
          case "Item 1": {systemChat "1";};
          case "Item 2": {systemChat "2";};
          default {systemChat "-";};
      };

      Wenn du die Einträge wie oben setzt, dann wird bei lbSetData folgendes gesetzt:

      Item1 -> 0 (Erwartet aber einen String müsste daher einen Fehler in der Log werfen)

      Item2 -> "_index"

      Du solltest also auch die Werte dort setzen, die du auch gerne abfragen möchtest.

      Was du auch machen kannst ist lbText, dies gibt den Text zurück der angezeigt wird.

    • Dr_Perl
      Anfänger
      Trophäen
      7
      Beiträge
      35
      • 1. März 2019 um 23:33
      • #5

      Jo mir lbText klappt es. Danke! :)

      Aber warum hat es nicht mit lbData geklappt? Habe ich das nicht auch festgelegt beim füllen der Listbox? (_kglist lbSetData [_index,"_index"];)?? Ahh ich habe hier "_index" in Häckchen gesetzt. Daran lag es wohl oder habe ich das falsch verstanden? Ich dachte man kann einmal den Text setzen, der angezeigt wird und dann einmal den "unsichbaren" der mit lbData abgefragt werden kann..

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      10
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 1. März 2019 um 23:57
      • #6

      wenn du _list lbSetData [_index, "_index"]; lautet die Data überall _index und nicht z.B. 3. Du müsstest _list lbSetData [_index, str(_index)]; nutzen (str konvertiert in einen String, heißt aus 3 wird "3")

      alternativ hättest du auch lbSetValue nutzen können wenn es eh um Zahlen geht.

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    • Dr_Perl
      Anfänger
      Trophäen
      7
      Beiträge
      35
      • 2. März 2019 um 00:10
      • #7

      Oh hm, ja okay, wunderbar! :D Wieder was gelernt.. Super, ich weiß bescheid! Vielen Dank!

    Registrieren oder Einloggen

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

    Registrieren

    Tags

    • listbox
    • select case

    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™