递归火山软件开发平台

标题: 火花代码编辑框+多文档界面(20231021开源) [打印本页]

作者: cl6843751    时间: 2023-10-21 18:33
标题: 火花代码编辑框+多文档界面(20231021开源)
本帖最后由 cl6843751 于 2023-10-21 21:45 编辑

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

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


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


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



下面是界面UI:
(, 下载次数: 37)
下面是界面操作和智能输入演示
(, 下载次数: 40)
遇到几个问题
1.我在一个窗口里添加了个组件(带按钮列表框1)调用窗口命令使用的是 创建窗口 (, , , , )什么代码也不写 打开退出几次就崩溃了这个是跳到错误的地方 这应该是BUG吧 请官方确认一下 (, 下载次数: 39) (, 下载次数: 41)

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

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


bug 自己已经修复
[attach]23985[/attach]
官方使用的是 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
[attach]23986[/attach]
<火山程序 类型 = "通常" 版本 = 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;
}


源码下载:













作者: 888888    时间: 2023-10-21 22:11
谢谢分享
作者: lvzhi_123    时间: 2023-10-21 23:00
谢谢分享
作者: 清水活源    时间: 2023-10-22 13:41
谢谢分享

作者: 韦贝贝    时间: 2023-10-22 13:57
谢谢分享
作者: alanwoo    时间: 2023-10-23 00:04

谢谢分享
作者: 小人物没回忆    时间: 2023-10-23 00:59
看看看看看看看看看看看看看看
作者: Inverse    时间: 2023-10-23 04:49
nb,,,,,,,,,,,,,,,,,,,,,
作者: fygyx1    时间: 2023-10-23 08:29
谢谢分享
作者: yh2393105053    时间: 2023-10-23 08:51
看看帖子里藏了啥好东西~~~
作者: 东子    时间: 2023-10-23 09:06
输出缓冲区
作者: 1503123    时间: 2023-10-23 09:09
好好学习天天向上

作者: aneng    时间: 2023-10-23 10:13
学习,感谢分享

作者: zqiz    时间: 2023-10-23 14:14
nnnnnnnnnnnnnnnnnnnnnnnnn
作者: CPUCN    时间: 2023-10-23 15:48
压缩数据和解压数据确定有问题?
我之前写的代码运行一段时间就出现问题,就用到了压缩和解压
难道和这个有关?
作者: cl6843751    时间: 2023-10-23 21:13
CPUCN 发表于 2023-10-23 15:48
压缩数据和解压数据确定有问题?
我之前写的代码运行一段时间就出现问题,就用到了压缩和解压
难道和这个有 ...

原本的官方的那个本身就有问题 你把我贴上的代码复制到自己项目里有可以了  无需放在HP库里

作者: 网络注册会员    时间: 2023-10-24 17:16

谢谢分享
作者: 山梦    时间: 2023-10-24 19:03

谢谢分享
作者: kantal    时间: 2023-10-24 19:44
谢谢分享~看看帖子里藏了啥好东西~~~
作者: 芒g一号    时间: 2023-10-25 07:27
感谢分享
作者: lovely    时间: 2023-10-25 09:07
看看看看看看看看看看看看
作者: Fbio    时间: 2023-10-26 20:46
谢谢分享
作者: chenshui    时间: 2023-10-28 14:17
谢谢大佬分享
作者: itismine    时间: 2023-11-3 15:57
学习一下。。。
作者: dbhsdm    时间: 2023-11-28 18:28
ASFASDGSADGASDG
作者: qzuser    时间: 2023-12-21 21:26
我看看看:噜阿噜
作者: 15292990    时间: 2023-12-21 21:29
谢谢分享
作者: 15292990    时间: 2023-12-21 21:36
连接过期了,楼主能从新分享一下吗
作者: 3219720339    时间: 2023-12-22 04:30
看看
作者: 追梦者    时间: 2023-12-22 04:57
666666666666666666666666666666666666666666666666
作者: guangye1    时间: 2023-12-22 07:25
我看看怎么个事
作者: aufhur    时间: 2023-12-22 08:41
谢谢分享,学习了。
作者: lichenxui    时间: 2023-12-22 09:58
666
作者: wenxue263    时间: 2023-12-23 14:55

谢谢分享
作者: q1015133989    时间: 2024-2-10 18:11
啊啊啊啊啊啊啊啊啊
作者: zfzhang    时间: 2024-2-17 20:47
谢谢分享
作者: zfzhang    时间: 2024-2-17 20:48
连接过期了
作者: 大有可为    时间: 2024-7-9 13:55
看一看




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4