卧龙先生 发表于 2006-1-25 18:07:14

AOC AI Builder 模板制作方法

兄弟们,春节来了,我可能有一个星期的时间不能上网(忙啊)了,不能管理"翻译模块"的帖子我好惭愧.
另外,我想过了,为了模板文件的发展,我趁着现在还有一点时间公布了模板的制作方法.希望大家都来帮忙.请下载 AOC AI Builder 之后.按照下面的方法学着制作.

QS 兄,你看到了吗?这就是我忙碌了半个月时间写的那个内核.你帮我翻译的!

当你打开 AOC AI Builder 之后按下 F9 ,或者点击菜单: 视窗->建立模板.就能进入模板设计 "IDE".
现在开始向你介绍该 "IDE" 的集成界面.
首先是上面的四个按钮 TLabel , TEdit, TCheckbox, TCombobox .
点击他们中的某一个将出现一个控件在面板中,然后你可以用鼠标点击这个新建的控件,拖动和拉拽改变它的位置和大小.在最后的时候,你可以在代码中对这些控件进行编程,这才是关键.
右边的一些按钮 Open, Save, Save TO 等等用于打开和保存文件的,点击 Open 并选择一个已经编辑过的模板文件之后你能看到具体,那些结果都是我自己写的.通过观察,你能从中学习到更多知识.
另外三个按钮 Change Text, Change Name, Delete control .用于设置定义的控件的属性.Change Text能修改一个控件所显示的标题. Change Name 比较不好弄明白,但这是最基础的知识,你必须明白它.控件的 text 指的是显示给用户看的, Name 是给我们看和操作(编程)的,比如我们在实现代码中可以有如下内容: " Edit1.text = '你好'; " . 这就要求你的模板文件中有一个控件的名称为 Edit1 .不然就会报错误.
Delete Control 用来删除一个已经建立的控件,但是你必须先选中(用鼠标点击它)这个要删除掉的控件.
"unit Name" 编辑框用来指定该模板文件的名称.
"Hint Text" 是 AOC AI Builder 中用户点击"提示"之后显示出来的提示信息.请完善它!
现在到达编程模式了,我们的代码将写到 Code 编辑框里面.让我们来分析如下源码:
var
begin
end.
上面的文本就是一个模板文件的源码主体结构.
你可以在 var 关键字后面声明字符串变量,声明方法是这样的:" cn: String; " ,当然也可以一次声明多个变量,比如: " s1,s2,s3: string; ".
关于变量:
变量是一种可以保存内容在内存中的东东,以下是使用例子:
var
hint: string;
begin
hint = '你好';
output(hint);
output(hint);
end.
请你先了解一下 Output 函数, output 函数将输出一个内容到用户的编辑框里面.上面的例子将在用户的编辑框里增加两行内容: "你好".当然也可以不使用变量直接输出:" Output('你好'); "
现在你应该能明白变量的使用方法了.另外,你要记住控件的 Text 属性也是一个变量.比如你可以这样写:" output(edit1.text); " ,比较有趣的是,这次将输出用户输入到 Edit1 里面的内容.
请注意每一个语句结束之后都必须加一个结束符号: ";" .
现在让我向你介绍该程序所支持的所有函数吧!
第一是 output .你已经知道了, OutPut 函数只有一个字符串参数,比如 " Output('你好'); "
第二个是 Trim(变量名称) . Trim 将把一个字符串变量两边的不可视字符删除掉,比如空格字符.使用例子:
var
s: string;
begin
s = '   你好      ';
edit1.text = s;
trim(s);
trim(edit1.text);
end.
LowerCase(变量名称); . UpperCase(变量名称); 分别将一个变量的内容从大写转换到小写,和从小写转换到大写.注意只能是变量,不能是其他文本.
Message(文本参数); 将显示一个信息框给用户看,参数中是要显示的内容.注意该参数可以是多行内容的.
IsInteger(文本参数) 将判断并返回"参数"中的内容是否可以转换到数码内容.比如 IsInteger('123') 就返回真, IsInteger('         2   s      ') 就返回假.
谈到 IsInteger 函数之后,我们就要进入 If then 分支语句了.请看如下源码:
var
s: string;
begin
s = '1d3s';
if IsInteger(s) then
    message('你输入的是正确的数码');
if not IsInteger(s) then
    message('请输入一个正确的数值');
end.
运行上忙的源码将被提示 '请输入一个正确的数值' . 因为 '1d3s' 不是标准的数码文本.
然后请注意 not 关键子. not 表示如果 not 后面的内容非"真" 就执行 if 后面的语句.
最最后面.记住除了 TLabel 之外,其他的控件都拥有 SetFocus 函数,该函数能为该 控件 获取输入焦点.比如 " Edit1.SetFocus ; ". 而 TCheckBox 拥有 Checked 属性.该属性为 Boolean 属性. TComBoBox 拥有 ItemIndex 属性.表示用户选择的项目数.注意该值从 0 开始计算.

制作好模板之后记得保存到 aoc ai builder 目录下的 Module 目录里面.回到 AOC AI Builder 主界面之后点击 "Update" 按钮就能开始测试你的模板了.
如果在测试中被提示错误,那么首先请看提示内容说写什么(由于被 QS 兄翻译为英文了,所以不容易看明白:)),请点击提示框中的"OK" .你能看到错误的地方.
出于时间的考虑,我写的很快.但是我相信聪明的你已经能明白个大体了.
[此贴子已经被作者于2006-01-25 19:06:40编辑过]

小狐 发表于 2006-1-25 18:31:48

卧龙, 这个里面的东西怎么不是我修改过的版本啊.到时候可别搞错了.另外我发现在这个东西里面不能输入单引号,输入就会提示错误:((例如blacksmith不能写成blacksmiths', enemy's town'后面的东西显示不出来.)继续研究..

卧龙先生 发表于 2006-1-25 19:07:52

小狐,你说中重点了.你也确实非常的聪明.
由于字符串定义使用关键字符号 " ' ".因此,只能去掉这个符号.这是我编程能力不够留下的缺陷.非常抱歉,有待我修改.
将来可能使用符号定义 比如 #32 代表空格. #X 代码 '
你说版本不同,是因为被我修改了.你也帮忙修改正确一点点.:)
小狐研究出点结果了吗?你这么聪明,一定很快就熟悉了.事实上制作模块已经类似于编写程序了.等你熟悉制作模板之后,编程也就入门了.

看来大家不是很喜欢这个"麻烦" 的东东.呵呵!
[此贴子已经被作者于2006-01-26 21:38:46编辑过]

小狐 发表于 2006-1-29 21:18:23



完成拉~~~

龙卷风 发表于 2006-1-29 22:33:54

果然聪明~11还没弄懂怎么设置TComboBox里面的列表,是用Text函数+换行吗?

卧龙先生 发表于 2006-1-29 23:44:00

风:
文本赋值 不一定要换行.换行只是为了方便浏览代码.
比如:
edit1.text = 'abc';
edit1.text =
'abc';
结果是相同的.
另外, TCombobox 的 Text 只能在设计中赋值(用鼠标点击 Combobox,然后点击 Change Text).不能在运行中赋值,好比这样是不行的 combobox1.text = 'abc';
大家有什么问题尽管提出来,我尽力指引大家进入编程环境!
[此贴子已经被作者于2006-01-29 23:44:43编辑过]

小狐 发表于 2006-1-30 09:43:38

TComboBox,用旁边的change text,然后换行就行啦to 风:看一下卧龙以前做的,可以明白个大概,再请教一下卧龙,就全明白啦
页: [1]
查看完整版本: AOC AI Builder 模板制作方法