递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 9371|回复: 39
打印 上一主题 下一主题

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

[复制链接]

6

主题

108

帖子

2359

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2359
跳转到指定楼层
楼主
发表于 2023-10-21 18:33:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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;
}


源码下载:

游客,如果您要查看本帖隐藏内容请回复











回复

使用道具 举报

2

主题

152

帖子

2566

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2566
沙发
发表于 2023-10-21 22:11:33 | 只看该作者
谢谢分享
回复

使用道具 举报

0

主题

154

帖子

2963

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2963
板凳
发表于 2023-10-21 23:00:27 | 只看该作者
谢谢分享
回复

使用道具 举报

6

主题

59

帖子

3668

积分

论坛元老

Rank: 8Rank: 8

积分
3668
地板
发表于 2023-10-22 13:41:33 | 只看该作者
谢谢分享
回复

使用道具 举报

13

主题

570

帖子

2128

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2128
5#
发表于 2023-10-22 13:57:34 | 只看该作者
谢谢分享
韦贝贝
Q905029375
回复

使用道具 举报

0

主题

251

帖子

1518

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1518
6#
发表于 2023-10-23 00:04:32 | 只看该作者

谢谢分享
回复

使用道具 举报

13

主题

105

帖子

1283

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1283
7#
发表于 2023-10-23 00:59:16 | 只看该作者
看看看看看看看看看看看看看看
回复

使用道具 举报

32

主题

566

帖子

3369

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3369
8#
发表于 2023-10-23 04:49:28 | 只看该作者
nb,,,,,,,,,,,,,,,,,,,,,
Inverse
回复

使用道具 举报

1

主题

40

帖子

504

积分

高级会员

Rank: 4

积分
504
9#
发表于 2023-10-23 08:29:16 | 只看该作者
谢谢分享
回复

使用道具 举报

5

主题

156

帖子

1221

积分

金牌会员

Rank: 6Rank: 6

积分
1221
10#
发表于 2023-10-23 08:51:52 | 只看该作者
看看帖子里藏了啥好东西~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-23 16:14 , Processed in 0.108500 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表