| 
TA的每日心情|  | 无聊 2024-3-3 20:52
 | 
|---|
 签到天数: 5 天 连续签到: 1 天 [LV.2]偶尔看看I 版主 
 
	积分124 来自: 中国广东广州
 | 
    
    
    
        
            非业余 - aardio 编程语言 - 非官方问答社区 | 本帖最后由 axuanup 于 2024-1-22 14:23 编辑 
 复制代码import fonts.ionicons;
import fonts.fontAwesome;
import fonts.imtip;
import win.ui;
/*DSG{{*/
mainForm = win.form(text="超级记事本";left=0;top=0;right=745;bottom=474;bgcolor=15780518;border="none";max=false)
mainForm.add(
bk={cls="bk";text='\uF040';left=5;top=5;right=38;bottom=25;dl=1;dt=1;font=LOGFONT(h=-18;name='FontAwesome');z=9};
listbox={cls="listbox";left=5;top=60;right=182;bottom=470;db=1;dl=1;dt=1;integralHeight=0;items={};vscroll=1;z=1};
["plus_删除"]={cls="plus";text='\uF4C5';left=78;top=36;right=108;bottom=56;dl=1;dt=1;font=LOGFONT(h=-18;name='Ionicons');notify=1;z=4};
["plus_同步"]={cls="plus";text='\uF0E2';left=148;top=36;right=178;bottom=56;dl=1;dt=1;font=LOGFONT(h=-18;name='FontAwesome');notify=1;z=7};
["plus_命名"]={cls="plus";text='\uF472';left=43;top=36;right=73;bottom=56;dl=1;dt=1;font=LOGFONT(h=-18;name='Ionicons');notify=1;z=5};
["plus_导入"]={cls="plus";text='\uF4C7';left=113;top=36;right=143;bottom=56;dl=1;dt=1;font=LOGFONT(h=-18;name='Ionicons');notify=1;z=6};
["plus_新建"]={cls="plus";text='\uF07C';left=8;top=36;right=38;bottom=56;dl=1;dt=1;font=LOGFONT(h=-18;name='imtip');notify=1;z=2};
richedit={cls="richedit";left=188;top=32;right=742;bottom=470;db=1;dl=1;dr=1;dt=1;link=1;multiline=1;vscroll=1;z=3};
static={cls="static";text="超级记事本";left=36;top=5;right=167;bottom=27;center=1;dl=1;dt=1;transparent=1;z=8}
)
/*}}*/
import console;
import fsys;
import fsys.dlg;
import godking.message;
import win.ui.tooltip;
import process;
//实例化消息框
var m = godking.message(mainForm)
//初始化窗体
var init = function() {
    //判断路径是否存在
    var fullpath = io.exist("\data")
    if (fullpath) {
        //搜索路径,返回目录下文件,目录数组
        var fileList = fsys.list("\data")
        mainForm.listbox.items = fileList;
        mainForm.listbox.selIndex = 1;
        mainForm.richedit.text = string.load("\data"++mainForm.listbox.selText)
    }
    mainForm.text = "超级记事本 V1.0.7"
    mainForm.static.text = mainForm.text;
    
    import win.ui.menu;
    //创建弹出菜单
    mainForm.popmenu = win.ui.popmenu(mainForm);
    mainForm.popmenu.add('打开路径', function(id) {
        if (#mainForm.listbox.items > 0) {
            process.explore(fsys.getParentDir("\data"++mainForm.listbox.selText))
        }
    })
    
    //如果 winform 的最大化按钮设为隐藏(false),则最大化按钮以及可拖动边框不会出现。
    import win.ui.simpleWindow;
    win.ui.simpleWindow(mainForm);
    
    //在所有者窗口 winform 上创建 tooltip 提示控件 
    var tooltipCtrl = win.ui.tooltip(mainForm);
    tooltipCtrl.addTool(mainForm.plus_新建, "新建txt文件")
    tooltipCtrl.addTool(mainForm.plus_删除, "删除txt文件")
    tooltipCtrl.addTool(mainForm.plus_命名, "重命名txt文件")
    tooltipCtrl.addTool(mainForm.plus_导入, "导入txt文件")
    tooltipCtrl.addTool(mainForm.plus_同步, "同步txt文件列表")
    win.center(mainForm.hwnd, 0)
    
    
    //***************************************************************************************
    //下面创建托盘图标
        import win.util.tray;
        mainForm.tray = win.util.tray(mainForm)  
        mainForm.tray.tip = "超级记事本" //提示超级记事本
        
        mainForm.onMinimize = function(lParam){
        mainForm.tray = win.util.tray(mainForm);
        mainForm.show(false); //隐藏窗口
        return true;//阻击默认消息传递,取消最小化过程
        }
        mainForm.onTrayMessage = {
                //鼠标右击
                [0x205/*_WM_RBUTTONUP*/  ] = function(wParam){ 
                    //弹出托盘菜单以前,一定要前置主窗口中,避免不点击菜单不会消失,父窗口隐藏也要这样做
                    win.setForeground(mainForm.hwnd)
                     
                        /*
                        下面创建托盘弹出菜单。
                        如果程序要开机启动到托盘,最好在这里创建菜单,在用户点击前不要创建菜单,
                        避免系统启动时 DPI 缩放前创建的菜单字体偏小(出现这情况的机率很小)。
                        如果不想重复创建菜单最好写到一个库里,然后在这里 import 即可避免上述问题。
                        */
                        import win.ui.menu;
                        mainForm.popmenu = win.ui.popmenu(mainForm);//创建弹出菜单
                        mainForm.popmenu.add('&打开软件',function(id){
                                //在下面输入菜单响应代码
                                mainForm.show(true);
                        });
                        mainForm.popmenu.add();//分隔线
                        mainForm.popmenu.add('&关闭软件',function(id){ mainForm.close() })            
                                    
                    mainForm.popmenu.popup();
                    mainForm.popmenu.close();
                };
                [0x201/*_WM_LBUTTONDOWN*/] = function(wParam){ 
                        //鼠标左击
                        mainForm.show(true);
                };
        }
        //***************************************************************************************
        
        
        //请先在 richedit 控件的设计器属性中指定「识别链接」为 true
        mainForm.richedit.onHyperlink =function(message,href){
                //在链接上弹起鼠标左键
                if( message = 0x202 /*_WM_LBUTTONUP*/ ) {
                        import process;
                        process.openUrl(href);
                }
        }
        
        //多行文本框如下支持按 tab 输入制表符,控件设计属性「tab控制键」必须为 false(默认值)。
        mainForm.richedit.isDialogMessage = function(hParent,msg){}
}
init()
mainForm.listbox.wndproc = function(hwnd, message, wParam, lParam) {
    select (message) {
        case 0x205 /*_WM_RBUTTONUP*/ {
            var x, y = win.getMessagePos();
            var item = mainForm.listbox.hitTest(x, y, true);
            if (item) {
                mainForm.listbox.selIndex = item;
                mainForm.popmenu.popup(x, y, true)
            }
        }
    }
}
mainForm.listbox.oncommand = function(id, event) {
    var fullpath = io.exist("\data")
    if (fullpath) {
        if (#mainForm.listbox.items > 0) {
            var s = string.load("\data"++mainForm.listbox.selText)
            mainForm.richedit.text = s;
        }
        
    }
}
mainForm.richedit.enablePopMenu() //开启右键菜单
mainForm.richedit.onChange = function() {
    if (owner.onModified) owner.onModified(true);
    var fullpath = io.exist("\data")
    if (fullpath) {
        string.save("\data"++mainForm.listbox.selText, owner.text, false)
    }
    
}
mainForm.plus_新建.skin(
    background = {
        hover = "/res/images/btn-hover.png";
        focus = "/res/images/btn-focus.jpg";
        active = "/res/images/btn-active.png";
        disabled = "/res/images/btn-disabled.png";
    }
)
mainForm.plus_新建.oncommand = function(id, event) {
    var name = m.input("新建文件", false)
    if (name) {
        string.save("\data"++name++".txt", "", true)
        var fileList = fsys.list("\data")
        mainForm.listbox.items = fileList;
        mainForm.listbox.selText = name ++".txt";
        mainForm.richedit.text = string.load("\data"++mainForm.listbox.selText)
    }
}
mainForm.plus_删除.skin(
    background = {
        hover = "/res/images/btn-hover.png";
        focus = "/res/images/btn-focus.jpg";
        active = "/res/images/btn-active.png";
        disabled = "/res/images/btn-disabled.png";
    }
)
mainForm.plus_删除.oncommand = function(id, event) {
    var fullpath = io.exist("\data")
    if (fullpath) {
        if (#mainForm.listbox.items > 0) {
            var state = m.ask("是否删除->"++mainForm.listbox.selText)
            if (state) {
                fsys.delete("\data"++mainForm.listbox.selText);
                var fileList = fsys.list("\data")
                mainForm.listbox.items = fileList;
                mainForm.listbox.selIndex = 1;
                mainForm.richedit.text = string.load("\data"++mainForm.listbox.selText)
            }
            
        }
    }
}
mainForm.plus_命名.skin(
    background = {
        hover = "/res/images/btn-hover.png";
        focus = "/res/images/btn-focus.jpg";
        active = "/res/images/btn-active.png";
        disabled = "/res/images/btn-disabled.png";
    }
)
mainForm.plus_命名.oncommand = function(id, event) {
    var fullpath = io.exist("\data")
    if (fullpath) {
        if (#mainForm.listbox.items > 0) {
            var name = m.input("修改名称", false)
            if (name) {
                fsys.rename("\data"++mainForm.listbox.selText, "\data"++name++".txt")
                var fileList = fsys.list("\data")
                mainForm.listbox.items = fileList;
                        mainForm.listbox.selText = name ++".txt";
                        mainForm.richedit.text = string.load("\data"++mainForm.listbox.selText)
            }
        }
    }
}
mainForm.plus_导入.skin(
    background = {
        hover = "/res/images/btn-hover.png";
        focus = "/res/images/btn-focus.jpg";
        active = "/res/images/btn-active.png";
        disabled = "/res/images/btn-disabled.png";
    }
)
mainForm.plus_导入.oncommand = function(id, event) {
    
}
mainForm.plus_同步.skin(
    background = {
        hover = "/res/images/btn-hover.png";
        focus = "/res/images/btn-focus.jpg";
        active = "/res/images/btn-active.png";
        disabled = "/res/images/btn-disabled.png";
    }
)
mainForm.plus_同步.oncommand = function(id, event) {
    var fullpath = io.exist("\data")
    if (fullpath) {
        var fileList = fsys.list("\data")
        mainForm.listbox.items = fileList;
        mainForm.listbox.selIndex = 1;
        mainForm.richedit.text = string.load("\data"++mainForm.listbox.selText)
    }
    
}
mainForm.show();
return win.loopMessage();
 
 | 
 
×本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?立即注册 
        
            非业余 - aardio 编程语言 - 非官方问答社区 |