|
本帖最后由 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;
}
源码下载:
|
|