本人想制作一个脚本解释程序,请各位帮一下忙!(300分)

  • 主题发起人 主题发起人 GodWave
  • 开始时间 开始时间
有谁可以把它翻译成Delphi程序,多谢!
 
Delphi版的我以前作了一半就停下来了,主要思路是想继承RichEdit,然后可以设定一些关键字。
 
amsea:能给我网址吗?
 
[8D]你可以直接使用 MS 的 IActiveScript 就可以了,在其中可以使用 ActiveX 进行扩展并支持事件关联,根本超过一般的 Script 可以达到的效果。
 
To 吕雪松
  我也试过用RichEdit,但怎样确定输入的某个单词是关键词呢?还要实时把改成其他颜色。
请讨论一下!
 
关键是怎样定位,如果用RichEdit的KeyUp或KeyDown事件,应该怎样确定一个单词。
 
很有用的东东,密切关注!

不过解释程序不能仅仅局限于关键字变色吧:)
 
5rain6sky说得不错,希望大家能一起讨论!
 
pascalscript(带源码)
Innerfuse Pascal Script is a freeware script engine for Delphi,
CBuilder and Free Pascal. It allows you to use Pascal code inside
your program.
http://wwww.carlo-kok.com
 
有谁可以动态定位单词的吗?即一边从键盘输入,然后RichEdit检测是否输完一个单词.
 
我记得在深度历险上有一个免费的控件,实现了delphi编辑器的语法变色功能,上面还有一些pascal的脚本解释控件,找一找,能找到.老实说我也在学习这东西,
正在找lex,yacc的使用方法.
 
继续讨论!
 
很笨的方法改变颜色:
procedure TForm1.RichEdit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
s,KeyTable:TStringList;
i,j:Integer;
KeyCode:String;
begin
s:=TStringList.Create;
KeyTable:=TStringList.Create;
KeyTable.CommaText:='TEST,HELLO';

s.CommaText:=RichEdit1.Lines[RichEdit1.Lines.Count-1];
i:=s.Count;
KeyCode:=s.Strings[(i-1)];
s.free;

for j:=0 to KeyTable.Count-1 do begin
if UpperCase(KeyCode)=KeyTable.Strings[j] then begin
RichEdit1.SelStart:=Length(RichEdit1.Text)-Length(KeyCode);
RichEdit1.SelLength:=Length(KeyCode);
Richedit1.SelAttributes.Color:=clBlue;
Edit1.Text:=KeyCode;
RichEdit1.SelStart:=Length(RichEdit1.Text);
RichEdit1.SelLength:=0;
RichEdit1.SelAttributes.Color:=clBlack;
end
else
RichEdit1.SelAttributes.Color:=clBlack;
end;
end;
 
请各位献出你的更好的程序.
 
cajscript很好用,一种类pascal脚本
 
我想学习一下.
 
不会吧,好象这个话题没有人感兴趣!
 
脚本解释程序有一堆,DelphiIn,CajScript等都很好,全Source
 
后退
顶部