델파이

템플릿 Templates 이용 코드 자동화 Ctrl + j

미스터몽키 2016. 9. 3. 03:00

예약어 + Ctrl + j  단축키를 이용한 코드 템플릿은 여러 가지로 빠른 코딩을 위해 편리하다.

기본으로 제공되는 if, for  등을 제외하고 사용자가 자주 사용하는 템플릿을 추가하면 편리하다.


델파이 메뉴> View> Templates 선택하고




New Code Template 버튼을 클릭하고

코드를 작성한다.


|end| 는 커서가 위치할 곳이다.


1. ShowMessage('');    코드 템플릿 


<?xml version="1.0" encoding="utf-8" ?>
<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
    version="1.0.0">
 <template name="sh" invoke="auto">
  <description>
            ShowMessage
  </description>
  <author>
            MrMonkey
  </author>
  <code language="Delphi" context="methodbody" delimiter="|">
            <![CDATA[ShowMessage('|end|');]]>
  </code>
 </template>
</codetemplate>


저장하면 파일명을 물어보는데 적당하게 작성한다.  예를 들어 sh_ShowMessage.xml

이제 코딩 중에 sh + Ctrl + j 하면  ShowMessage('');  가 자동으로 작성된다.

.

팁)  작성하고 싶은 코드 템플릿 내용을 기존 코드에서 블럭으로 선택한 상태에서 New Code Template 버튼을 클릭하면

CDATA[] 대괄호 사이에 자동으로 블럭으로 선택한 내용을 입력된다.


마찬가지로 다음의 if 문과 함께 자주 사용되는 MessageDlg 구문도 작성하자.


2. if MessageDlg('|end|', mtConfirmation, [mbYes, mbNo], 0) <> mrYes then  코드 템플릿


<?xml version="1.0" encoding="utf-8" ?>
<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
    version="1.0.0">
 <template name="ifm" invoke="auto">
  <description>
            if MessageDlg
  </description>
  <author>
            MrMonkey
  </author>
  <code language="Delphi" context="methodbody" delimiter="|">
            <![CDATA[if MessageDlg('|end|', mtConfirmation, [mbYes, mbNo], 0) <> mrYes then]]>
  </code>
 </template>
</codetemplate>


파일명은 ifm_if_MessageDlg.xml 로 저장하고  이제  ifm + Ctrl + j 하면 코드가 자동 작성된다.




3. While not(Eof) do ~ 코드 템플릿


<?xml version="1.0" encoding="utf-8" ?>
<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
    version="1.0.0">
 <template name="whilen" invoke="manual">
  <description>
            while not(Eof)
  </description>
  <author>
            MrMonkey
  </author>
  <code language="Delphi" context="methodbody" delimiter="|"><![CDATA[while not(Eof) do
    begin

      Next;
    end;]]>
  </code>
 </template>
</codetemplate>