我正在将我的应用程序迁移到delphi 2009.我的应用程序仍然必须使用大量的AnsiString。在迁移过程中,我发现自己总是在转换:
abc := def;
成:
abc := string(def);
或
abc := TDeviceAnsiString(def);
我知道我应该可以用模板做到这一点,但我发现模板 - 虽然功能强大 - 不是那么容易上班。这是我一直在尝试的:
<?xml version="1.0" encoding="utf-8" ?>
<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
version="1.0.0">
<template name="das" invoke="auto">
<point name="expr">
<script language="Delphi">
InvokeCodeCompletion;
</script>
<hint>
MP: TDeviceAnsiString
</hint>
<text>
True
</text>
</point>
<description>
MP: TDeviceAnsiString
</description>
<author>
Mike
</author>
<code language="Delphi" context="any" delimiter="|"><![CDATA[TDeviceAnsiString(|selected|)|end|]]>
</code>
</template>
</codetemplate>
它不会出现在环绕声菜单中,并且无论何时我都不会激活它。我希望能够
abc := **das***[tab]*def;
或选择“def”并使用“surround”获取:
abc := TDeviceAnsiString(def);
谢谢你的帮助!
答案 0 :(得分:11)
这应该这样做:
<?xml version="1.0" encoding="utf-8" ?>
<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
version="1.0.0">
<template name="das" surround="true" invoke="auto">
<description>
MP: TDeviceAnsiString
</description>
<author>
Mike rev François
</author>
<code language="Delphi" delimiter="|"><![CDATA[TDeviceAnsiString(|end||selected|)]]>
</code>
</template>
</codetemplate>
已添加:您可以使用Delphi Wiki
在LiveTemplates Technical Infos上找到更多信息