X-R*_*Ray 5 delphi delphi-2009 live-templates
我正在将我的应用程序迁移到delphi 2009.我的应用程序仍然必须使用大量的AnsiString.在迁移过程中,我发现自己总是转换:
abc := def;
Run Code Online (Sandbox Code Playgroud)
成:
abc := string(def);
Run Code Online (Sandbox Code Playgroud)
要么
abc := TDeviceAnsiString(def);
Run Code Online (Sandbox Code Playgroud)
我知道我应该可以用模板做到这一点,但我发现模板 - 虽然功能强大 - 不是那么容易上班.这是我一直在尝试的:
<?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>
Run Code Online (Sandbox Code Playgroud)
它不会出现在环绕声菜单中,它不会随时激活.我希望能够
abc := **das***[tab]*def;
Run Code Online (Sandbox Code Playgroud)
或者选择"def"并使用"surround"来获得:
abc := TDeviceAnsiString(def);
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
Fra*_*ois 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>
Run Code Online (Sandbox Code Playgroud)
补充:您可以使用LiveTemplates技术信息在Delphi Wiki上找到更多信息
| 归档时间: |
|
| 查看次数: |
1080 次 |
| 最近记录: |