cl6843751 发表于 2023-10-21 18:33:35

火花代码编辑框+多文档界面(20231021开源)

本帖最后由 cl6843751 于 2023-10-21 21:45 编辑

原始框架是在利快云网站上 标题为:火山编写H5IDE源码 作者:【Mr DJS】ACE代码编辑器是原本框架使用的编辑器

我把他换成了 火花代码编辑器 为什么要换 因为不会ACE


我写的代码质量不怎么样 大佬勿喷只是完成了 基本操作 还有很多BUG 和优化的地方 仅仅完成了操作功能类部分演示的代码只是演示 自己可以随意修改不要问输入命令为什么这样的格式--因为我喜欢此源码演示了 多文档界面和火花代码边框支持库的演示


大略功能:
1.层次自动调整
2.括号匹配
3.代码联想功能-自动输入
4.自动缩进
5.复制自动缩进
6.菜单的基本功能实现
7.自动填写预知代码
8.等等等....



下面是界面UI:

下面是界面操作和智能输入演示

遇到几个问题
1.我在一个窗口里添加了个组件(带按钮列表框1)调用窗口命令使用的是 创建窗口 (, , , , )什么代码也不写 打开退出几次就崩溃了这个是跳到错误的地方 这应该是BUG吧 请官方确认一下

2.
火花代码编辑框1.置指定指示器前景色 (2, 颜色类.红色)
火花代码编辑框1.置指定指示器样式 (2, 代码编辑框指示器样式.矩形包围)
1-35之间只有设置2的时候 置指定指示器前景色才有效果其他索引都无效求知道的大神指点一二

3.
火花代码编辑框1.置指定样式前景色 (预定义样式类型.括号匹配, 颜色类.红色)
火花代码编辑框1.置指定样式背景色 (预定义样式类型.括号匹配, 颜色类.黄色)
置括号高亮-无论怎么设置都没有效果 但是 置不匹配括号高亮是正常的求知道的大神指点一二


bug 自己已经修复

官方使用的是 SCI_INDICSETSTYLE更改为 SCI_INDICSETFORE 就正常了


<火山程序 类型 = "通常" 版本 = 1 />

方法 置指定指示器前景色 <公开 注释 = "设置指定指示器所使用的前景色" "">
参数 索引 <类型 = 整数 注释 = "提供所欲为其指定前景色的指示器索引,0-35之间.">
参数 颜色 <类型 = 整数 注释 = "提供所欲使用的前景色">
{
    @ CVWnd_Scintilla* pWnd = (CVWnd_Scintilla*)GetMfcWndPtr ();
    @ if (pWnd->m_hWnd != NULL)
    // @   pWnd->SendEditor(SCI_INDICSETSTYLE, (uptr_t)@<索引>, (sptr_t)@<颜色>);
    @    pWnd->SendEditor(SCI_INDICSETFORE, (uptr_t)@<索引>, (sptr_t)@<颜色>);



}
置括号高亮   官方用的 SCI_SETFOCUS实际是 SCI_BRACEHIGHLIGHT

<火山程序 类型 = "通常" 版本 = 1 />

方法 置括号高亮 <公开 注释 = "设置括号匹配时高亮字符位置">
参数 位置一 <类型 = 整数>
参数 位置二 <类型 = 整数>
{
    @ CVWnd_Scintilla* pWnd = (CVWnd_Scintilla*)GetMfcWndPtr ();
    @ if (pWnd->m_hWnd != NULL)
    // @   pWnd->SendEditor(SCI_SETFOCUS, (uptr_t)@<位置一>, (sptr_t)@<位置二>);
    @   pWnd->SendEditor(SCI_BRACEHIGHLIGHT, (uptr_t)@<位置一>, (sptr_t)@<位置二>);

}








题外-BUG
HP的 压缩数据 解压数据 是有问题的我去找了QQ群956446702 他们在搞HP模块 群主 他提供的代码 官方的库有BUG 也不正确的去面对解决 净扯一些没用的话 给吴总反馈了 也不回复一下这个是我之前的帖子HP 解压数据 是不是存在bug - 错误及建议提交 - 火山软件开发平台 - Powered by Discuz! (voldp.com)虽然我是小白 .................


下面的代码是解决方法

<火山程序 类型 = "通常" 版本 = 1 />


方法 高级压缩数据_Zlib <公开 静态 类型 = 整数 注释 = "对指定数据进行Zlib压缩." 返回值注释 = "返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足"
      @禁止流程检查 = 真>
参数 欲压缩数据 <类型 = 字节集类 注释 = "提供所欲压缩的数据.">
参数 输出缓冲区 <类型 = 字节集类>
参数 压缩级别 <类型 = 整数 注释 = "0-9之间,级别越高压缩率越大,相应的压缩时间会变长." @默认值 = -1>
参数 压缩位数 <类型 = 整数 注释 = "8-15,表示处理raw deflate的方法." @默认值 = 15>
参数 压缩状态 <类型 = 整数 注释 = "指定分配内存的等级,1-9之间,1会使用最低的内存,压缩时间最长." @默认值 = 8>
参数 压缩算法 <类型 = 整数 注释 = "指定所欲使用的压缩算法." @默认值 = 0>
{
    @ if (@<欲压缩数据>.GetSize()==0) return -3;
    @ DWORD dwDestLen = SYS_GuessCompressBound((INT)@<欲压缩数据>.GetSize(), FALSE);
    @ INT ret = SYS_CompressEx(@<欲压缩数据>.GetPtr(), (INT)@<欲压缩数据>.GetSize(), @<输出缓冲区>.Alloc (dwDestLen, TRUE), dwDestLen, @<压缩级别>, 8, @<压缩位数>, @<压缩状态>, @<压缩算法>);
    @ @<欲压缩数据>.Free ();
    @ if (ret == 0)
    @ {
    @   @<输出缓冲区>.RemoveToEnd (dwDestLen);
    @ }else{
    @   @<输出缓冲区>.Free ();
    @ }
    @ return ret;
}


方法 高级解压数据_Zlib <公开 静态 类型 = 整数 注释 = "对指定数据进行Zlib解压." 返回值注释 = "返回值:0 -> 成功,-3 -> 输入数据不正确,-5 -> 输出缓冲区不足"
      @禁止流程检查 = 真>
参数 欲解压数据 <类型 = 字节集类 注释 = "提供所欲解压的数据.">
参数 输出缓冲区 <类型 = 字节集类 注释 = "解压后赋值数据.">
参数 原数据长度 <类型 = 整数 注释 = "压缩前数据长度,未知留空" @默认值 = 0>
参数 压缩位数 <类型 = 整数 注释 = "8-15,表示处理raw deflate的方法." @默认值 = 15>
{
    @ DWORD dwDestLen;
    @ INT srclen = (INT)@<欲解压数据>.GetSize();
    @ if (srclen==0) return -3;
    @ int ret=-5;
    @ if (@<原数据长度> > srclen)
    @ {
    @   ret = SYS_UncompressEx(@<欲解压数据>.GetPtr(), srclen, @<输出缓冲区>.Alloc (srclen, TRUE), dwDestLen, @<压缩位数>);
    @ }else{
    @   int len=0;
    @   while(ret == -5)
    @   {
    @          len = len=0 ? srclen * 2 : len + 1024;
    @          ret = SYS_UncompressEx(@<欲解压数据>.GetPtr(), srclen, @<输出缓冲区>.Alloc (len, TRUE), dwDestLen, @<压缩位数>);
    @   }
    @ }
    @ @<欲解压数据>.Free ();
    @ if (ret == 0)
    @ {
    @   @<输出缓冲区>.RemoveToEnd (dwDestLen);
    @ }else{
    @   @<输出缓冲区>.Free ();
    @ }
    @ return ret;
}


源码下载:

**** Hidden Message *****










888888 发表于 2023-10-21 22:11:33

谢谢分享

lvzhi_123 发表于 2023-10-21 23:00:27

谢谢分享

清水活源 发表于 2023-10-22 13:41:33

谢谢分享

韦贝贝 发表于 2023-10-22 13:57:34

谢谢分享

alanwoo 发表于 2023-10-23 00:04:32


谢谢分享

小人物没回忆 发表于 2023-10-23 00:59:16

看看看看看看看看看看看看看看

Inverse 发表于 2023-10-23 04:49:28

nb,,,,,,,,,,,,,,,,,,,,,

fygyx1 发表于 2023-10-23 08:29:16

谢谢分享

yh2393105053 发表于 2023-10-23 08:51:52

看看帖子里藏了啥好东西~~~
页: [1] 2 3 4
查看完整版本: 火花代码编辑框+多文档界面(20231021开源)