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!