开始使用Delphi中的RemObjects Pascal脚本

时间:2010-06-20 23:50:35

标签: delphi scripting pascal pascalscript remobjects

我刚开始使用RemObjects Pascal脚本。并一直在尝试遵循remobjects教程。

http://devcenter.remobjects.com/articles/?id= {2FFC1EE9-F18D-4B11-9DE4-1BA0A79D0D04}

一切都很顺利,直到您运行的部分

begin
  ShowNewMessage('Show This !');
end.

它声称它不知道它。 但我在这里有它

procedure Tmainwindow.ceCompile(Sender: TPSScript);
begin
  Sender.AddMethod(Self, @Tmainwindow.ShowNewMessage,
                   'procedure ShowNewMessage(const Message: string);');
end;


procedure ShowNewMessage(const Message: string);


procedure Tmainwindow.ShowNewMessage(const Message: string);
begin
  //ShowMessage('ShowNewMessage invoked:'#13#10+Message);
end;

按照指示在编译事件中添加...它都在delphi中编译但是当我从我的可执行文件中运行代码时它说它不存在。

其次如果我添加任何插件来改进脚本的函数调用我得到这个..

alt text 请帮助我意识到我可能在这里做一些愚蠢的事情。

2 个答案:

答案 0 :(得分:2)

好吧,我尝试构建该页面上显示的示例,并为我编译并正确运行。尝试使用页面顶部显示的示例,“以下代码将编译并...”。只需确保省略替换脚本文本的行。

对于插件,它无法注册您的事件类型,因为它们引用了尚未注册的对象类。不幸的是,PS插件系统没有任何自动解析依赖关系的方法,编译器的错误消息并没有告诉你它找不到哪种类型。您需要调试器来帮助您解决此问题。但是很多基础知识,包括TObject(是的,你必须明确地导入它)都可以在TPSImport_Classes中找到。

答案 1 :(得分:0)

我有同样的问题。这与语法无关,只是包含脚本编译器的Forms-Unit模板。 Sry,我没有解决这个问题的方法,因为它甚至在删除OnMenuDrawItem和OnMenuAdvancedDrawItem事件时都会发生(它们都会产生问题)。 我使用BDS 2006,这可能是问题,因为它使用高级Forms源代码与D7使用的(实际上是RO PS版本)。 因此,删除编译器的Forms单元插件,该插件还包括菜单单元并再次尝试,这应该“解决”您的问题。