更多有关极语言中文编程的信息请看文件夹下的sec.htm或者官网的编程说明书http://sec.yihuolao.com/sec.htm。
极语言的官方网址是:
http://sec.yihuolao.com/
http://sec.z5x.cn/
http://www.z5x.cn/
极语言入门教学视频:https://www.ixigua.com/7128748847265743371
极语言游戏教学视频:https://www.ixigua.com/7128744019546341921
极语言整理的标准ASCII码表:http://sec.yihuolao.com/ascii.htm
极语言QQ交流群:13016712
极语言手动安装包下载地址:http://sec.yihuolao.com/SEC.rar
极语言在线安装地址:http://sec.yihuolao.com/Sec.zip
极语言
极语言中文编程语言是面向过程的语言。
Sec是Simple easy compile的缩写,也是秒的意思,编译和运行都极快的中文编程。
安装说明
安装目录尽量不要选择C盘,也不要在分区根目录。
极语言程序文件介绍
sec是集成开发环境(IDE,Integrated Development Environment),用于提供程序开发环境的应用程序
人怎么说话就怎么理解极语言的代码。
比如,当窗口关闭的时候我就结束程序,当点击鼠标左键时我就弹出信息框,信息框里标题是“你好”,信息框里的内容是一个信息图标和两个字“中国”。
如何理解编程语言中的函数、方法?
干什么(谁,怎样)
谁.干什么(怎样)
谁(怎样干什么)
谁(怎样)(干什么)
所有的编程语言中的方法和函数大概就以上这几种方式。
窗口程序必须有的代码框架
复制代码
程序段 窗体消息(窗口,消息,参数,数据)
判断(消息)为 窗口关闭{停止(0)}
为 单击左键{左键点击(参数)}
否则 处理窗口(窗口,消息,参数,数据)
结束
程序段 窗体启动
结束
窗体启动
程序段 窗体消息(窗口,消息,参数,数据) 判断(消息)为 窗口关闭{停止(0)} 为 单击左键{左键点击(参数)} 否则 处理窗口(窗口,消息,参数,数据) 结束 程序段 窗体启动 改窗口字(窗体,"这是窗口标题名称") 结束
消息来源一般是是程序运行时,系统发过来的.
改窗口字(文本框1,"asdasdadad"); /* 参数1:控件名或窗口名或窗口编号。主窗口也算是一个控件。 参数2:修改后的字符串。就是想要把标题修改成啥。这里是把文本框1的标题修改成"asdasdadad" */
当然你也可以不用代码区修改窗口的标题,极语言编程工具里有相应的窗口参数设置项,可以直接在上面修改窗口的标题:
如何创造变量?
这里的创造其实和其他编程里的声明这个词是差不多的意思。
变量就是可能会变化的量。
变量里的量,我理解就是一种结果,可能是数,也可能是字,也可能是状态。
变量的作用是用来存储信息的。
注意,变量名和变量是两个概念。
变量名是指变量的名称,就是我们给某种信息或者某种结果起了一个名字,
变量才是信息,才是结果。
数据类型 变量名称=变量;
这个语句是说,把一个变量起一个名字。后面你想用这个变量的时候,便于引用。你规定了这个变量属于啥类型。属于数,还是字,还是逻辑。
字符 变量1="你好你好"; 布尔 变量2=真; 整形 变量3=100; 正整形 变量4=65535; 整数 变量6=1000000000; 小数 变量7=3.1415; 文本 变量8[3]="你好呀"; 浮点 变量9=3.141592654; 大数 变量9=210980912490830941909184091283103414111;
其中整形、正整形、整数有什么区别?
这些数据类型有范围上的区别(整形2字节,整数4字节),至于整形的范围是多少到多少之间,正整形的范围是多少到多少之间,整数的范围是多少到多少之间,请查看极语言中文编程的编程说明书http://sec.yihuolao.com/sec.htm。
如何创造多个同一类型的变量?
字符 变量1,变量2,变量3,变量5="莎莎书a";
如何注释?
单行注释
//改窗口字(窗体,"这是窗口标题名称");
多行注释
/* 改窗口字(窗体,"这是窗口标题名称"); 改窗口字(窗体,"这是窗口标题名称"); */
废弃函数说明
中文名称 | 英文名称 | 示例 | 作用 | 附加说明 |
创建计时 | CreateSystemTimer | 计时=创建计时(毫秒,@回调) | 创建一个指定时间的系统计时器 | win11废弃了这个函数 |
定时器(窗体,编号,毫秒)
函数作用:开启指定编号和毫秒的定时器,毫秒数为零关闭定时器
参数说明:
窗体:窗体的名字。
编号:定时器的名字。编号可以是0到42亿的数字,开启42亿个独立的定时器
毫秒:你想要倒计时的毫秒数。
极语言开始一个HelloWorld
程序段 窗体消息(窗口,消息,参数,数据) 判断(消息)为 窗口关闭{停止(0)} 为 单击左键{左键点击(参数)} 否则 处理窗口(窗口,消息,参数,数据) 结束 程序段 窗体启动 信息框(0,"中国","你好",信息图标) 结束
–
信息框(0,"中国","你好",信息图标) /* 信息框函数有三个参数, 参数1:窗口名或者窗口编号。窗体启动的窗口编号是"0",窗口名叫窗口,这里写"窗口"也一样的结果. 参数2:提示信息。内容是两个汉字"中国",也可以是任意字符串。 参数3:信息框的标题。标题是两个汉字"你好",也可以是任意字符串。 参数4:信息框的提示图标。 */
–
加法运算
整数 结果=10+10; 文本 显示[10]=结果; 信息框(0,显示,"你好",信息图标); /* 结果是20 */
–
文本 b[13]; 取窗口字(按钮1,b,13); 信息框(0,b,"标题",信息图标); /* 取窗口字(按钮1,b,13); 作用:获取控件或窗口上的文字。 参数1:窗口名或控件名或编号 参数2:字符串接收者。你要定义一个变量,谁来接收这个窗口或控件上的字符串。 参数3:要获取几个字节。想要这个控件或窗口上的文字字符串的字节长度是多少个? 数字1字节,汉字两字节。 比如, 若控件上有2个汉字,你想截取1个汉字,就填3字节,想截取两个汉字就填5。 想截取两个汉字就填3.但是你要是说有两个汉字,你只想截取一个,但是你填了1,那么这个字很可能无法显示,你填了3,会出现只显示一个汉字,后面可能会多出来一个未知的字符。 若控件上只有2个数字,那么想截取一个数字,就填2,想截取2个数字,就填3。 示例: 文本 b[100]; 取窗口字(按钮1,b,100); 信息框(0,b,"标题",信息图标); */
记住,极语言中的一个数字、一个符号都是一个字节,中国的一个汉文字、韩国的一个韩文字、日本的一个日文字是2个字节。
定义文本类型的变量或常量时,你的字节长度要始终多一个字节。
比如
有一个值为“你好”的文本类型的变量,一个汉字是2字节,两个汉字就是4字节,但是要多一个字节,你定义的这个字符串长度应该为5:
文本 字符串[5]="哈你";
–
加文字(数文1,数文2); /* 示例: 整数 结果00; 结果00=加文字("你","好"); 信息框(0,结果00,"你好",信息图标); */
加文字的作用是拼接字符串,有两个参数,两个参数都是字符串,加文字的返回值是字符串,需要一个整数或整形变量去临时存储这个结果的地址,才能够在程序中使用它的结果。
全能函数
函数使用
参考:https://blog.csdn.net/mcw_720624/article/details/117192221
发送消息(窗口名或控件名,事件,发送出去的内容,发送出去的内容); /* 参数1:发送对象。窗口名或控件名 参数2:发送过去要执行啥东西。事件。消息名称 参数3:发送出去的内容。 字符型参数 参数4:发送出去的内容。长整型参数 作用:发送消息可以修改其它程序的窗口或控件,包括文字、图片、图标、光标、背景风格样式、位置大小、添加删除列表或菜单等等,而取窗口字就只能修改自身程序的,不能跨进程修改 */
创建一个dll
新建工程-标准扩展dll
程序段 初始化(整数 实例,整数 模式,整数 数据) 信息框(0,"世界","你好",信息图标); 结束; /* 原始内容如下: 程序段 初始化(整数 实例,整数 模式,整数 数据) 返回(1) 结束; */
调用dll使用中括号里的语法[加载库(“创建dll.dll”)](提前是把dll放入程序同目录下能这样写,不然你就需要写完整的路径)
程序段 窗体消息(窗口,消息,参数,数据) 判断(消息)为 窗口关闭{停止(0)} 为 单击左键{左键点击(参数)} 否则 处理窗口(窗口,消息,参数,数据) 结束 程序段 窗体启动 加载库("创建dll.dll") 结束
写一个控制台程序。(新建工程-命令控制台)
程序段 初始启动 写文字("你好,我是简易中文编程") 读字符 结束;
写一个命令控制台程序,返回小数点后几位:
以下代码解读,
首先极语言不会帮助开发者取申请内存空间,需要开发者自行申请内存空间,最好用到多少内存空间就申请多少内存空间。
所以写了一个程序段返回了你需要的值,你需要自己申请一个变量去接收这个值,注意,你程序段返回的是什么类型的值,那么你就需要申请一个相应的数据类型的值去接收这个值。
这里程序段返回的是一个小数,所以需要申请一个浮点类型的变量去接收这个值,然后再使用[写格式()]这个命令去格式化这个值显示到命令控制台上。格式化浮点类型的数据使用%f。
注意程序段如果返回的值是小数,那么需要在小数前面跟上一个冒号符号:,表示你返回的是一个浮点类型的值。例如,你想返回4.5这个小数,那么表达式就是返回(:4.5)
程序段 初始启动 浮点 值; 值=取一个小数; 写格式("%f",值);//默认精确到小数点后6位数 写格式("\r\n",""); 写格式("%.1f",值);//精确到小数点后1位数 写格式("\r\n",""); 写格式("%.2f",值);//精确到小数点后2位数 写格式("\r\n",""); 写格式("%.3f",值);//精确到小数点后3位数 写格式("\r\n",""); 写格式("%.4f",值);//精确到小数点后4位数 写格式("\r\n",""); 写格式("%.5f",值);//精确到小数点后5位数 写格式("\r\n",""); 写格式("%.6f",值);//精确到小数点后6位数 写格式("\r\n",""); 写格式("%.7f",值);//精确到小数点后7位数 写格式("\r\n....\r\n",""); 写格式("%.70f",值);//精确到小数点后70位数 读字符 结束; 程序段 取一个小数 返回(:4.5) 结束 /* 函数说明: 写格式("你好%s",名字); 作用:把一个或多个变量转换格式化后显示在屏幕(控制台)上 */
使用发送消息让编辑框与编辑框之间传值
程序段 编辑框1_改变 整形 字=申请内存(64); 整形 你; 你=字; 发送消息(编辑框1,获取文本,64,字); 发送消息(编辑框2,设置文本,真,你); 结束
但是这个语句其实是不对的,整形不可以作为指针也就是地址使用,应该把 整形 改为 整数。
极语言中的数据类型有全局变量和局部变量之分。
数组,结构体,字节,字符,整形,短数,正数,大数,日期,这些数据类型的变量都是全局性的,不论你在程序中的哪个位置声明,都可以使用。当然不在一个工程下的文件里的全局变量除外。
极语言所有的数据类型(12种):
字符、字节、整形(短数)、正数、整数、日期、小数、浮点、大数、子类、对象和自定义类型。
极语言的所有变量即可为全局变量,只要声明在程序段之外即可.
全局变量除了文本需要指定申请内存大小,其他都不需要,只要别超过数据类型定义的大小范围即可.
全局变量中的文本数据类型,指定的字节大小依然遵循4的整数倍.
全局变量中的文本数据类型,指定的字节大小申请没有最大120字节限制,
只要不超过数据类型给定的范围即可.
声明在程序段之内的就是局部变量,并且只能声明整数、小数、文本、浮点、子类和对象这6种数据类型.
所有的变量除了文本类型都是按照4字节以及4字节的倍数参与内存操作运算的,
比如申请了一个6字节的变量,程序会把这个变量当作8字节的.
程序中所有的局部变量的字节长度,默认最大申请的内存为120字节,如果所有局部变量加起来需要申请更多字节的内存空间时,
请在程序段内的局部变量前,加上局部两个字或者加上loacl也行,都是一个意思,然后再空格,比如:
程序段 窗体启动 局部 文本 ss(122); 结束
因为极语言中,0代表着空,代表着结束,所以想要清空变量,只需要把0赋予给要清空的变量即可.比如:
文本 s[10]="abcd"; s=0;
局部变量最多能够申请的字节内存大小为1-2M.
如何修改文本数据中的某个字符?
使用数组操作即可,比如申请了一个文本变量:
//申请16字节的文本变量 文本 s[16]="abc"; //使用数组操作,把s变量中第2个位置的字符修改为d s(2)=\d;
注意以上程序不要搞混了,申请变量需要在变量前定义数据类型,
如果不定义数据类型,括号里的数字就是指索引,叫下标也行,下标从0开始,
所以s变量的第2个位置的字符是c,修改第2个位置的字符为d.
要注意这一点,极语言中的全局和局部和其他编程语言里的全局和局部不一样。极语言的全局能够跨越文件和程序段。局部就是局部。
极语言的数组
数组属于全局变量,所以一个工程下声明的数组在此工程下哪里都能用。
数组,即一组数据。如果数据有顺序的话,那么就肯定要有一个顺序,但是从哪里开始呢?极语言里面的数组顺序是从0开始。
在其它语言中,通常数组是这样声明的,
example = ["a","b","c","d","e","f","g"]
但是这里面的这些数据,我们成为数组中的元素,我们总要知道某个元素处于数组中的什么位置吧?怎么描述这个位置呢?
你不妨可以这样看这组数据:
example = [0,1,2,3,4,5,6,7,8,9]
比如,给元素排个序,里面的每个元素都有一个序号,这个序号我们称它为下标,元素下方的标识,也可以叫做索引,一种目录的线索引用。
现在你能看懂数组了吗?
那么极语言里的数组声明需要一个一个的对数组里的每一个元素进行赋值,
数组声明的语法是
内容(下标)=数据;
比如想声明一个名为“内容”的数组,第一个元素是
内容(0)="你好"
第二个元素是
内容(1)="你好好"
第三个元素是
内容(2)="你"
界面菜单设计
极语言的菜单设计,首先要把.frm文件呼唤出来,双击那个文件即可呼唤出来,然后在那个界面上鼠标右键一下,会出来选项,选择编辑菜单即可。
编辑菜单的界面有一个输入框,那个输入框里直接输入菜单名按一下回车键即可追加菜单名,有上下箭头可以移动菜单项。
需要注意的是,菜单项,不要输入空白的菜单名,不然的话,整个菜单项都无法显示。
就像这样:
如果你想整一个二级菜单,菜单编辑器上有左右键,可以先添加菜单项,然后左右键控制菜单级别,像下面这样:
极语言如何添加菜单的绑定事件?
在控件窗体上右键,注意不要在控件上右键,在窗体没有控件的空白处右键,编辑菜单-输入菜单名称-点击添加按钮-双击菜单名即可添加菜单的绑定事件。
极语言如何删除菜单的绑定事件?
在一个控件上鼠标右键,然后点击删除事件,把你要删除的事件名称弄进去即可。
数据表的使用
程序段 窗体消息(窗口,消息,参数,数据) 判断(消息)为 窗口关闭{停止(0)} 为 单击左键{左键点击(参数)} 否则 处理窗口(窗口,消息,参数,数据) 结束 //见过Excel表格嘛? //定义表格名称并且定义表格的列名 密码 密保 邮箱 性别四个字段 //同时仅仅是定义名称,都可以放在外面,尤其是 全局变量. //数据表 属于 结构体 数据类型, 结构体 数据类型属于 全局变量. 数据表 账号表{文本 密码[16],密保[16],邮箱[16];整数 性别} 程序段 窗体启动 //定义可存入表记录数 可存入5000行数据 重置 账号表(5000); //定义第1行数据 账号表(0).密码="123"; 账号表(0).密保="宠物"; 账号表(0).邮箱="123@qq.com"; 账号表(0).性别=1; //定义第2行数据 账号表(1).密码="---"; 账号表(1).密保="---"; 账号表(1).邮箱="123---@qq.com"; 账号表(1).性别=0; 整数 aa=账号表(0).密码; //获取数据表的行数 整数 bb=账号表.rows; //获取数据表的列数 整数 cc=账号表.cols; 文本 行数[10]=bb; 文本 列数[10]=cc; 信息框(0,行数,"你好",信息图标); 结束 /* 为啥获取账号表的行数或列数需要多一个数据转换的步骤? 就是整数这个数据类型始终传递的是变量的地址,当声明一个变量时,需要从内存中申请一个地址给它,现在我们已经在内存中申请到地址了,然后当程序去引用时,直接引用这个整数变量就能显示数据。 但是,当我获取数据表的行数或者列数时,也需要使用整数先给它从内存中申请一个地址,然后由于信息框中的提示信息属于文本类型的数据,所以需要再给它这个变量的数据转成文本类型才行。 上面我获取的账号表(0).密码这个因为数据本身已经是文本类型,所以现在看起来才少了一步骤。 整数变量获取了地址----引用这个变量能显示地址上的数据------至于你想要在屏幕上显示的话,那么要看显示在屏幕上那个函数里规定的数据类型是啥,来决定需不需要转换数据。 */
播放和停止音乐
//添加一首歌曲 音乐播放.添加("1.mp3") //播放序号为1的歌曲 音乐播放.开始(1) //停止序号为1的歌曲 音乐播放.停止(1)
极语言如何更改程序图标?
ide界面-设置-程序图标
极语言如何让程序发出嘀的一声?
程序段 窗体启动 嘀(377,1000); 结束 /* 嘀(频率,持续时间); 频率:在37到32767之间 持续时间:毫秒数,1000毫秒等于1秒,1分钟就是60000毫秒 */
极语言IDE窗体设计界面的组件框分别有哪些?
注意:下面的组件排列顺序与窗体设计界面的组件位置是一一对应的。
除了第一个指针不是用来画界面的,其他的组件数量共有31个。
指针 图像框 标签 按钮
网页框 编辑框 复选框 单选钮
分组框 列表框 组合框 高级组合框
滚动条 标头 调节框 工具提示
选项卡 工具条 状态栏 进度条
树表 表格 文档编辑 滑块条
日期框 月历 影音动画 链接
热键 分页框 IP框 用户控件
极语言编译的程序如何获得管理员权限?
菜单项-工程-版本信息-合法版权或文件描述里写上install或者update。这样编译后的程序将拥有获取管理员的权限。
极语言如何把窗体文件的编程代码?
选中窗体或窗体文件,点击菜单栏倒数第四个按钮:切换设计。能把窗口文件图像转换成代码模式。
如何调用另一个窗体?
已有窗体1,创建窗体2,选中窗体2,切换设计,小程序后面的“加载窗体2”就是一个函数,可以在其他函数中调用这个函数名即可调用显示出该窗体。
创建线程
创建线程(属性,堆栈,@函数,参数,标志,标识); /* 函数说明: 一般情况下,需要填写参数三. 参考链接 https://www.cnblogs.com/ay-a/p/8762951.html 第一个参数:表示线程内核对象的安全属性,一般传入NULL表示使用默认设置。(null就是0,就是空) 第二个参数:表示线程栈空间大小。传入0表示使用默认大小(1MB)。 第三个参数:表示新线程所执行的线程函数地址,多个线程可以使用同一个函数地址。 第四个参数:是传给线程函数的参数。 第五个参数:指定额外的标志来控制线程的创建,为0表示线程创建之后立即就可以进行调度,如果为CREATE_SUSPENDED则表示线程创建后暂停运行,这样它就无法调度,直到调用ResumeThread()。 第六个参数:将返回线程的ID号,传入NULL表示不需要返回该线程ID号。(null就是0,就是空) */ //函数示例 程序段 窗体启动 创建线程(0,0,@播放音乐,0,0,0); 结束 小程序 播放音乐 音乐播放.添加("1.mp3"); 音乐播放.开始(1); 结束
开启线程
开启线程(@函数,堆栈大小,参数); /* 一般情况下,需要填写参数一。 函数说明: 参考链接 https://www.cnblogs.com/LiaoQian1996/p/12923318.html 参数1:函数名/小程序名 参数2:新线程的堆栈大小;设为0表示与主线程使用一样的堆栈 参数3:参数列表(没有参数时为NULL,null就是0,就是空) */ //函数示例 程序段 窗体启动 开启线程(@播放音乐,0,0); 结束 小程序 播放音乐 音乐播放.添加("1.mp3"); 音乐播放.开始(1); 结束
开启线程和创建线程目前不清楚有何区别,目前知道的就是
- 两者作用一样
- 创建线程,这个函数最后一个参数可以把线程的状态返回到一个整数值上,这样你就知道这个线程当前啥状态,成功了还是失败了还是说有其他情况。这个状态有11031种,参考https://www.cnblogs.com/carekee/articles/2196518.html
字串长度
函数说明: 字串长度(参数1); 参数1:字符或字符串.获取文字的长度,英文1字节,汉字2字节; 函数示例: 程序段 窗体启动 整数 文件; 文件=建文件("12.htm",0); 整数 内容="你好你好"; 写文件(文件,内容,字串长度(内容)); 关文件(文件); 结束
文件框类
文件框类 文件框(长度=76,路长=64); 文本 路径[64]; 程序段 窗体启动 文件框.窗口=窗体; 文件框.路径=路径; 文件框.分类 = "文本文件'\0'*.txt;*.inc'\0'所有文件'\0'*.*'\0'"; 结束 程序段 按钮2_点击 文件框.标题="打开文件11111" 如果(文件选框(文件框)) 信息框(0,路径,"选择的文件是",信息图标); 结束 程序段 按钮3_点击 文件框.标题="保存为1111" 如果(保存选框(文件框)) 信息框(0,路径,"选择的文件是",信息图标); 建文件(路径,0); 关文件(路径); 结束
这个文件框类的所有成员,构成了一个文件框类这样一个东西,这个文件框类就是一种数据,它由19个东西构成,这19个东西被称为他的成员,每个成员占用4字节,然后加起来就是这个文件框类的数据结构的长度,也就是19*4=76字节,这就是为啥要填写76这个数字的原因.
创建窗口
/窗口=创建窗口(扩展,类名,标题,样式,左,上,宽,高,父窗,菜单/标识,实例,数据); //作用:创建窗口。 //函数使用示例: 窗体=创建窗口($200,程序.名称,"编辑器",$100F0064,左,上,993,595,0,菜单,0,0); 编辑框1=创建窗口($200,"Edit","编辑框1",$50011004,25,60,150,335,窗体,1,4,0); 编辑框2=创建窗口($200,"Edit","编辑框2",$50011004,205,75,171,45,窗体,2,4,0); 文档编辑3=创建窗口($200,"RichEdit20A","RichEdit20A编辑框2",$50241004,225,165,170,220,窗体,3,23,0); 文档编辑4=创建窗口($200,"RichEdit20W","RichEdit20W编辑框2",$50241004,400,165,170,220,窗体,3,23,0); 文档编辑5=创建窗口($200,"RichEdit","RichEdit编辑框2",$50241004,590,165,170,220,窗体,3,23,0); /* 参数解释: 扩展:未知,目前创建窗口统一写$200。 类名:使用哪个组件名称,详见win32api里面的组件名。 标题:设置该组件的名称或者内容。 样式:未知,目前已知的样式可以填写$100F0064、$50011004,样式列表未知。 左:该组件当前最左顶点的x坐标,就是起始坐标x,或者叫水平坐标。 上:该组件当前最左顶点的y坐标,就是起始坐标y,或者叫垂直坐标。 宽:组件的宽度。 高:组件的高度。 父窗:该组件的父组件窗口是谁。 菜单/标识:未知。 实例:未知。 数据:未知。 富编辑框,目前发现有三个:RichEdit20A、RichEdit20W、RichEdit。 RichEdit组件无边框 其他区别未知。 字串长度(文字); 作用:获取文字的长度,英文1字节,汉字2字节。 目前不知道返回值是啥类型。 */
编辑器使用问题
如果编辑器输入不了汉字,可以点一下Ecs键。可能你按了Ctrl+F组合键,就会出现这种情况。
注意大括号后面不要有分号。
注意连续声明不同数据类型的变量或者常量时,加分号。
代码自动联想提示功能按F2即可开启,使用拼音首字母即可出现想要的关键字。
极语言中的窗口一般是指窗口名,在微软文档中一般叫窗口句柄。
一级菜单通常点开都是子菜单,就是说一级菜单的功能只负责展开和收起子菜单,所以极语言的一级菜单中不会对子菜单进行设置点击事件,也只是用来展开和收起子菜单的功能,只有子菜单的绑定事件会生效。
发表回复