我怎样才能制作“环绕” 输入 Delphi 模板?

发布于 2024-07-08 18:47:37 字数 1419 浏览 10 评论 0原文

我正在将我的应用程序迁移到 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);

谢谢您的帮助!

i'm migrating my app to delphi 2009. my app must still use a lot of AnsiString. during migration, i find myself always converting:

abc := def;

into:

abc := string(def);

or

abc := TDeviceAnsiString(def);

i know i should be able to do this with templates but i find templates--although powerful--are not so easy to get working. here's what i've been trying:

<?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>

it doesn't appear in the Surround menu and it doesn't activate whenever i want. i'd like to be able to

abc := **das***[tab]*def;

or select the "def" and use "surround" to get:

abc := TDeviceAnsiString(def);

thank you for your help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

撩人痒 2024-07-15 18:47:37

这应该可以做到:

<?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 找到更多信息="http://delphi.wikia.com/wiki/Live_Templates_Technical_Info" rel="noreferrer">LiveTemplates 技术信息

This should do it:

<?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>

Added: You can find more info on the Delphi Wiki with the LiveTemplates Technical Infos

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文