2008-10-29 45 views
5

我正在將我的應用程序遷移到德爾福2009年。我的應用程序仍然必須使用很多AnsiString。在遷移過程中,我發現自己總是轉換:我如何製作一個「環繞」類型的Delphi模板?

abc := def; 

到:

abc := string(def); 

abc := TDeviceAnsiString(def); 

我知道我應該能夠使用模板來做到這一點,但我覺得templates--雖然功能強大 - 不容易工作。這是我一直在嘗試:

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

或選擇「高清」和使用「環繞聲」中獲得:

abc := TDeviceAnsiString(def); 

感謝您的幫助!

回答

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

+0

謝謝弗朗索瓦!它完美地工作。也謝謝你的鏈接! – 2008-10-29 20:22:30

相關問題