PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dialog Switch Do Tutorial gesucht


Keksi43
15.07.2014, 01:01
Servus Leute,
ich mal wieder.

Leider habe ich es immer noch nicht geschaft eine combobox mit dem
switch do command zu kombinieren.
Ich habe bereits in der Doku nachgeschaut, aber ich finde einfach keine Lösung.
Ich erläutere noch mal mein Vorhaben:
Wenn OK button gedrückt und:

Wenn Auswahl1 ausgewählt, starre Script1.
Wenn Auswahl2 ausgewählt, starre Script2.
Wenn Auswahl3 ausgewählt, starre Script3.

Die Combobox zu füllen habe ich bereits geschaft. Nur ich krieg das oben erwähnte
einfach nicht hin.

Ich wäre voller Begeisterung, wenn mir jemand erklären könnte wie das
zu coden ist.

Da ich leider gerade am Handy sitze kann ich keine Dateien anhängen.
Ich freue mich jetzt schon aif eure Hilfe,

Keksi43
Sagt mir einfach wenn ich etwas posten sollte.

smallfly
22.08.2014, 12:15
Beim OK Button folgenden Code einfügen:


(...)
text = "OK";
onButtonClick = "[] spawn schmitt_fnc_aktualisiereMeinenDialog;";
(...)
Die Aktualisierungsfunktion in der description.ext bekannt machen:

class CfgFunctions
{
class Schmitt
{
tag = "schmitt";

class eineFunktionsSubKlasse
{
file = "functions\testVerzeichnis";

class aktualisiereMeinenDialog {};
};
};
};
Die Datei functions\testVerzeichnis\ fn_aktualisiereMeinenDialog.sqf anlegen:


Private ["_idcBildschirm", "_idcDropDown", "_bildschirm", "_meineDropDown", "_indexSelektierterEintragInDropDown"];

disableSerialization;

_idcBildschirm = 7700; // oder welche IDC du eben vergeben hast
_idcDropDown = 7704; // oder welche IDC du eben vergeben hast

waitUntil { !isNull (findDisplay _idcBildschirm) };

_bildschirm = findDisplay _idcBildschirm;
_meineDropDown = _bildschirm displayCtrl _idcDropDown;

_indexSelektierterEintragInDropDown = lbCurSel _meineDropDown;

switch (_indexSelektierterEintragInDropDown) do
{
case 0 : { [] spawn schmitt_fnc_funktion1Bla; };
case 1 : { [] spawn schmitt_fnc_funktion2Bla; };
case 2 : { [] spawn schmitt_fnc_funktion3Bla; };
default { hint "Bitte wählen Sie zunächst etwas aus."; };
}

Drunken Officer
23.08.2014, 13:42
Du musst der IDC keine Zahl geben. Du kannst auch gleich direkt mit anderen Variablen arbeiten. Somit sparst du die das vergeben der lokalen VAriablen

smallfly
23.08.2014, 14:34
Du musst der IDC keine Zahl geben. Du kannst auch gleich direkt mit anderen Variablen arbeiten. Somit sparst du die das vergeben der lokalen VAriablen
Falls du dich auf "_idcDropDown = 7704" beziehst. Das mach ich aus Gründen der Übersichtlichkeit. Und der Einheitlichkeit in meinen ganzen Dialogskripten. Klar kann man das noch abkürzen :)

(Ich hatte mal meine Dialoge im Stil von "_meineDropDown = _bildschirm displayCtrl 7704;" programmiert. Aber manche Befehle brauchen kein Control sondern die IDC selbst und dann hast du die IDC doppelt und somit redundant im Code stehen.)