如何在DM脚本中动态使用对话框文本框

问题描述

如何在dm脚本的对话框中设置和获取import axios from "axios"; import setAuthToken from "../utils/setauthtoken"; import { setAlert } from "./alert"; import { REGISTER_SUCCESS,REGISTER_FAIL,USER_LOADED,AUTH_ERROR,} from "./types"; //load user export const loadUser = () => async (dispatch) => { console.log("from loaduser auth.js"); if (localStorage.token) { setAuthToken(localStorage.token); } try { const res = await axios.get("/api/auth"); console.log("inside auth.js get auth route"); dispatch({ type: USER_LOADED,payload: res.data,}); } catch (err) { dispatch({ type: AUTH_ERROR,}); } }; 的文本?


查看以下示例对话框。它创建一个包含TextBox的对话框。我想在创建时设置此TextBox的值。我想修改获取并设置)函数调用中的值,例如单击按钮。

如给定代码所示,我尝试了TextBoxDLGValue()DLGTitle()。但是他们都不起作用。我该怎么做?

注意: Show 按钮显示代表DLGLabel()的当前TagGroup。我希望能在初始状态或元素更改后看到一些东西。但是我什么也找不到。

TextBox

解决方法

这可以做到:


    class handler : UIFrame {
        void ShowText( object self ) {
            string str = self.GetTextElementData("textBox");
            result( "text box :[" + str + "]\n");
            return;
        };
        void SetText( object self ) {
            string str = ""
            for(number i=0;i<100;i++) str+=CHR(64+Random()*26);
            self.SetTextElementData("textBox",str);
            return;
        };
    };
    
    number boxWidth = 40,boxHeight = 4,txtLength = 160;
    
    TagGroup Dialog = DLGCreateDialog( "text box");
    TagGroup txtScript = DLGCreateTextBox( boxWidth,BoxHeight,txtLength ).DLGIdentifier( "textBox" );
    TagGroup tgButton1 = DLGCreatePushButton( "Set random text","SetText" );
    TagGroup tgButton2 = DLGCreatePushButton( "show text in result window","ShowText" );
    Dialog.DLGAddElement( tgButton1 );
    Dialog.DLGAddElement( tgButton2 );
    Dialog.DLGAddElement( txtScript );
    alloc(handler).init(Dialog).pose();