Delphi 코드 생성 양식 사양 이 사양의 목적은: 코드에 통일되고 표준적인 모양을 제공하고 향상된 기능을 제공하는 것입니다.
가독성, 이해성, 유지 관리성
본 사양의 원칙: 이름은 의미를 반영하고, 형태는 구조를 반영합니다.
1. 유닛 스타일
2. 지역별 스타일
3. 진술 스타일
4. 명명 규칙
참조: Borland 공식 Object Pascal 스타일 가이드
코딩 표준에 대한 Delphi5 프로그래머 가이드
{ }
{프로젝트 이름}
{ }
{저작권(C) 2000,2001 회사명}
{ }
**************************************************** ***** ******}
단위 단위명;
**************************************************** *************
프로젝트:
기준 치수:
설명하다:
버전:
날짜:
작가:
고쳐 쓰다:
할 일:
************************************************** * *****}
인터페이스
용도
----,----,----,----,----,----,----,----,----,----, ----,
----,----, ----,----,----,----;
const
------------------;
------------------;
------------------;
유형
------------------;
------------------;
------------------;
------------------;
------------------;
------------------;
var
------------------;
------------------;
------------------;
구현
용도
----,----,----,----;
{$R *.RES}
{$R *.DFM}
-------------------;
-------------------;
-------------------;
-------------------;
-------------------;
-------------------;
-------------------;
-------------------;
-------------------;
-------------------;
-------------------;
-------------------;
종료.반환
주제 설명, 기능 절차의 목적 설명, 설명문 설명
빈 줄: 저작권 블록, 클래스 간, 메소드 간 - (2줄) 메소드 내부 블록 (1줄)
공간: 선명도를 높이기 위해 사용됩니다.
들여쓰기: 공백 두 개
----- = ----;
----- = ----;
----- = ----;
----- = ----;확장
접두사: 최소 C_--- 주제당 최대 1개의 접두사
상수
{ 주제 1 }
C_--- = ----;
C_--- = ----;
C_--- = ----;
C_--- = ----;
{ 주제 2 }
----- = ----;
----- = ----;
----- = ----;
----- = ----; 변수 영역 뒤에 배치되는 리소스 문자열
자원 문자열
const
S_--- = '----';
S_--- = '----';
S_--- = '----';
예: CM_BASE = $B000;
CM_ACTIVATE = CM_BASE + 0;
CM_DEACTIVATE = CM_BASE + 1;
CM_GOTFOCUS = CM_BASE + 2;
CM_LOSTFOCUS = CM_BASE + 3;
NumPaletteEntries = 20;
BoxPoints : GLfloat의 배열[0..5, 0..2] =
((-1, 0, 0),
(0, 1, 0),
(1, 0, 0),
(0, -1, 0),
(0, 0, 1),
(0, 0, -1) );
{ 변형 유형 코드(wtypes.h) }
varEmpty = $0000; { vt_empty }
varNull = $0001 { vt_null }
varSmallint = $0002 { vt_i2 }
GIFVersions : TGIFVersionRec = ('87a', '89a')의 배열[gv87a..gv89a];
티---- = ---------
객체 유형-->상태를 저장하고 서비스를 제공하는 엔터티
T---- = 클래스(----)
사적인
--------
--------
보호됨
--------
--------
공공의
--------
--------
출판됨
--------
--------
end; 알파벳순으로 정렬Private;
1. 모든 데이터는 F로 시작하는 Private 영역에 배치됩니다.
2. 모든 이벤트 속성에 해당하는 메소드 포인터는 F로 시작하는 Private 영역에 배치됩니다.
3. 속성의 Get 및 Set 메소드는 Private 영역에 배치되어 --> 상속될 준비가 되어 있지 않습니다.
4. 메시지에 응답하는 방법은 Private 영역에 있습니다.
보호됨
1. 서브클래스에 의해 호출되지만 외부 세계에서는 호출할 수 없는 메서드 및 특성
2. 가상을 오버로드하는 서브클래스 방법;
공공의
1. 소멸자 메서드 구축
2. 외부 통화 방법
3. 외부 통화에 대한 속성
출판됨
1. 디자인 용도로 Object Inspector에 나타나는 속성
2. 디자인 타임 동안 Object Inspector에 나타나는 이벤트 응답의 예: TGIFVersion = (gvUnknown, gv87a, gv89a);
TGIFVersionRec = 문자 배열[0..2];
PInterfaceTable = ^TInterfaceTable;
TInterfaceTable = 압축된 레코드
EntryCount: 정수;
항목: TInterfaceEntry의 배열[0..9999];
{ forWord 선언 }
TGIF이미지 = 클래스;
TGIFSubImage = 클래스;
{-------------
TGIF항목
-------------}
TGIFItem = 클래스(TP지속성)
사적인
FGIF이미지: TGIF이미지;
.............
끝;
기본 클래스 개체 변수가 없도록 주의하고 호출자에서 선언하세요!
var
-----------: -------;
-----------: -------;
예:
GIFDelayExp: 정수 = 10; { ms 단위의 지연 승수.}
GIFDelayExp: 정수 = 12;
주제
------------------------------------- --------}
{방법의 목적}
절차 ----------------------------
시작하다
--------;
--------;
끝;
{방법의 목적}
기능-----------------------------
시작하다
--------;
--------;
끝;
형식 반환