rmajly 发表于 2024-1-25 00:39:04

一个菜单选项点击响应命令的问题


我用老大的例子,改写的一个高级选项菜单,点击菜单第一、
第二个选项能实现打开目标文本,但第三个我却不会了。现把代码贴上来,请指点一下:

//实现弹出菜单
import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
button={cls="button";text="弹出列表";left=390;top=363;right=517;bottom=410;z=3};
menuItem={cls="plus";text='\uF0AE 测试菜单一';left=523;top=167;right=676;bottom=212;bgcolor=-6960024;font=LOGFONT(name='FontAwesome';charset=0);tabstop=1;z=1};
menuItem2={cls="plus";text='\uF0AE 测试菜单二';left=523;top=214;right=676;bottom=259;bgcolor=-6960024;font=LOGFONT(name='FontAwesome');ont=LOGFONT(name='FontAwesome';charset=0);tabstop=1;z=2}
)
/*}}*/

import win.ui.tabs;
var menu = win.ui.tabs(winform.menuItem,winform.menuItem2)
menu.skin({
      background={
                default=0xFF68CC95;
                disabled=0xFFC4CCC8;
                hover=0xFF4A522F;
      };
      color={
                default=0xFF000000;
                disabled=0xFF8A8A8A;
                hover=0xFFFFFFFF
      };
      checked={
                border={default={color=0xFF0E64E7;right=4}}
      }
})

menu.add({
      text='\uF0AE 测试菜单三';
})

winform.button.oncommand = function(id,event){
      menu.popup(true,winform.button)
}

win.menu.onOk = function(strip){
      import process;
      if (winform.menuItem.checked) {
      process.executeWaitInput("C:\a1.txt");
         }
      if (winform.menuItem2.checked) {
                process.executeWaitInput("C:\a2.txt");
      }
    if (winform.menuItem3.checked) {
                process.executeWaitInput("C:\a3.txt");
      }                        
}

// 调用这句代码切换到弹出列表显示模式
menu.initPopup()

winform.show()
win.loopMessage();

风行者 发表于 2024-1-25 09:38:50

menu.selIndex 选中的序号


//实现弹出菜单
import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
button={cls="button";text="弹出列表";left=390;top=363;right=517;bottom=410;z=3};
menuItem={cls="plus";text='\uF0AE 测试菜单一';left=523;top=167;right=676;bottom=212;bgcolor=-6960024;font=LOGFONT(name='FontAwesome';charset=0);tabstop=1;z=1};
menuItem2={cls="plus";text='\uF0AE 测试菜单二';left=523;top=214;right=676;bottom=259;bgcolor=-6960024;font=LOGFONT(name='FontAwesome');ont=LOGFONT(name='FontAwesome';charset=0);tabstop=1;z=2}
)
/*}}*/

import win.ui.tabs;
var menu = win.ui.tabs(winform.menuItem,winform.menuItem2)
menu.skin({
      background={
                default=0xFF68CC95;
                disabled=0xFFC4CCC8;
                hover=0xFF4A522F;
      };
      color={
                default=0xFF000000;
                disabled=0xFF8A8A8A;
                hover=0xFFFFFFFF
      };
      checked={
                border={default={color=0xFF0E64E7;right=4}}
      }
})

menu.onOk = function(strip){
      import process;

      process.executeWaitInput("C:\a"+ menu.selIndex +".txt");
                                    
}


menu.add({
      text='\uF0AE 测试菜单三';
})

winform.button.oncommand = function(id,event){
      menu.popup(true,winform.button)
}


// 调用这句代码切换到弹出列表显示模式
menu.initPopup()

winform.show()
win.loopMessage();

rmajly 发表于 2024-1-25 16:10:26

本帖最后由 rmajly 于 2024-1-25 16:12 编辑

风行者 发表于 2024-1-25 09:38
menu.selIndex 选中的序号
非常感谢风行老大的回复和提醒!考虑到menu.selIndex不定义是不能打开目标文本文件的,所以重新修改了一下,经测试,完美运行!现把代码奉献如下://实现弹出菜单
import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
button={cls="button";text="弹出列表";left=390;top=363;right=517;bottom=410;z=3};
menuItem={cls="plus";text='\uF0AE 测试菜单一';left=523;top=167;right=676;bottom=212;bgcolor=-6960024;font=LOGFONT(name='FontAwesome';charset=0);tabstop=1;z=1};
menuItem2={cls="plus";text='\uF0AE 测试菜单二';left=523;top=214;right=676;bottom=259;bgcolor=-6960024;font=LOGFONT(name='FontAwesome');ont=LOGFONT(name='FontAwesome';charset=0);tabstop=1;z=2}
)
/*}}*/

import win.ui.tabs;
var menu = win.ui.tabs(winform.menuItem,winform.menuItem2)
menu.skin({
      background={
                default=0xFF68CC95;
                disabled=0xFFC4CCC8;
                hover=0xFF4A522F;
      };
      color={
                default=0xFF000000;
                disabled=0xFF8A8A8A;
                hover=0xFFFFFFFF
      };
      checked={
                border={default={color=0xFF0E64E7;right=4}}
      }
})

menu.add({
      text='\uF0AE 测试菜单三';
})

winform.button.oncommand = function(id,event){
      menu.popup(true,winform.button)
}

win.menu.onOk = function(strip){
      import process;
      if (menu.selIndex = 1) {
                process.executeWaitInput("C:\a1.txt");
         }
      if menu.selIndex = 2) {
                process.executeWaitInput("C:\a2.txt");
      }
       if (menu.selIndex = 3) {
               process.executeWaitInput("C:\a3.txt");
      }                        
}

// 调用这句代码切换到弹出列表显示模式
menu.initPopup()

winform.show()
win.loopMessage();

rmajly 发表于 2024-1-25 17:29:10

本帖最后由 rmajly 于 2024-1-25 22:19 编辑

发现有一个有趣的问题,论坛显示的地址是不对的,我没去过菲律宾,怎么显示我的IP是菲律宾的?还有我也不在安徽宿州.
页: [1]
查看完整版本: 一个菜单选项点击响应命令的问题