Board logo

Subject: 腳本專家問題 [Print This Page]

Author: jAmEs_    Time: 2008-1-9 16:58     Subject: 腳本專家問題

var
  IsDelphi: Boolean;
begin
  //IsDelphi := Compiler <> cnBCB6; // 為何不能判斷是否在BCB和Delphi環境?
  IsDelphi := Pos('Delphi', Application.MainForm.Caption) > 0;
Author: Passion    Time: 2008-1-9 17:14

用WizOptions.CompilerID吧。

Compiler这些并未在专家脚本中注册。
能使用哪些内容,可以查看PSDeclEx目录下的文件内容。
Author: jAmEs_    Time: 2008-1-9 17:44

WizOptions.CompilerID不知道怎么用,試過:
IsDelphi := WizOptions.CompilerID <> cnBCB6;不行
看還是我那種方法快速方便
Author: Passion    Time: 2008-1-9 22:58

把WizOptions.CompilerID 给WriteLn出来看其值嘛。
Author: jAmEs_    Time: 2008-1-10 09:08

原來是字符型的啊,難怪編譯不通過。
IsDelphi := WizOptions.CompilerID <> 'CB6';
這樣可以。
Author: Passion    Time: 2008-1-10 09:18

是哇。WizOptions的声明在PSDeclEx的CnWizOptions.pas里头有,使用时可以看看。
Author: jAmEs_    Time: 2008-1-10 09:42

就是不太想去看才這樣。。。不想了解太多接口了
Author: shenloqi    Time: 2008-1-10 10:01

IsDelphi := Pos('Delphi', Application.MainForm.Caption) > 0;
这样的代码对于英文版本的Delphi没有问题,可是对于其他语言版本的Delphi估计就不行了吧?
Author: Passion    Time: 2008-1-10 10:25

那里头都是中文注释,够容易懂吧。

不想了解CW额外提供的接口,就只有想别的硬办法判断了。哈哈。
Author: jAmEs_    Time: 2008-1-10 17:14

不是容易不容易理解的问题,的确现在软件太多接口了,每年还有大量的概念出现,我是多么希望统一的啊,那样就不用面对选择,呵呵
不过要做的好些就只能去了解了
Author: jAmEs_    Time: 2008-1-10 17:15

而且我看例子有用Compiler,但是不行,才说问问。。。
Author: Passion    Time: 2008-1-10 19:42

不对。Compiler应该是行的,注册了的。
比如我在Delphi 7 里头跑脚本。

  IsDelphi := Compiler <> cnBCB6;
  if IsDelphi then
    Writeln('xxxxx');

这句,是会打出来xxxxx的。
Author: Passion    Time: 2008-1-10 20:07

抱歉,经过检查。我们在注册Compiler的值的时候,对BCB的值处理错位了。导致BCB5 和BCB6的Compiler值判断错误。因此才导致您一开始的脚本判断失败。
这个问题将在下一版本修正。

一个bug, 感谢感谢。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0