1. ข้อมูลเบื้องต้นเกี่ยวกับข้อกำหนด
ข้อกำหนดนี้ส่วนใหญ่กำหนดกฎและข้อควรระวังที่โปรแกรม Delphi Source ควรปฏิบัติตามในระหว่างกระบวนการเขียน วัตถุประสงค์ของการเขียนข้อกำหนดนี้คือการรักษาพฤติกรรมการเขียนซอร์สโค้ดของนักพัฒนาซอฟต์แวร์ของ บริษัท ให้สอดคล้องกัน การทำเช่นนั้นสมาชิกแต่ละกลุ่มสามารถเข้าใจรหัสของสมาชิกกลุ่มอื่น ๆ เพื่ออำนวยความสะดวกในการพัฒนาระบบการบำรุงรักษาระบบหน่วยความจำซอร์สโค้ด
2. รูปแบบหน่วย
2.1 ข้อกำหนดพื้นฐาน
2.1.1 การเยื้อง
การเยื้องเป็นช่องว่างสองช่องที่เพิ่มขึ้นเพื่อเพิ่มความสามารถในการอ่านเมื่อระดับของโปรแกรมการเปลี่ยนแปลง กฎของการเยื้องคือการเยื้องสองช่องว่างสำหรับแต่ละระดับ ไม่อนุญาตให้แท็บ เนื่องจาก TAB จะสร้างเอฟเฟกต์ที่แตกต่างกันเนื่องจากการตั้งค่าที่แตกต่างกันของผู้ใช้ เมื่อคุณพบว่าเริ่มต้นหรือเข้าสู่การตัดสินลูปการจัดการข้อยกเว้นด้วยคำแถลงการประกาศประเภทบันทึกการประกาศชั้นเรียน ฯลฯ เพิ่มระดับหนึ่ง การประกาศในชั้นเรียน ฯลฯ จะลดลงหนึ่งระดับ
2.1.2 เริ่มต้น…จบ
คำสั่งเริ่มต้นและคำสั่งสุดท้ายควรใช้บรรทัดเดียวในโปรแกรมต้นทางเช่น:
สำหรับ i: = 0 ถึง 10 เริ่มต้น // การใช้งานไม่ถูกต้อง
จบ;
สำหรับ i: = 0 ถึง 10 do // การใช้งานที่ถูกต้อง
เริ่ม
จบ;
2.1.3 ช่องว่าง
เพิ่มช่องว่างที่ปลายทั้งสองของตัวดำเนินการและสัญลักษณ์การตัดสินเชิงตรรกะเช่น: i: = i + 1;, a และ b ฯลฯ
แต่ไม่จำเป็นต้องมีพื้นที่ว่างเมื่อเพิ่มวงเล็บ
ตัวอย่างเช่น: ถ้า (a> b) และ (a
ถ้า (a> b) และ (a <c) แล้ว // แก้ไขการใช้งาน
2.1.4 ตัวแปร
พยายามอย่าใช้ตัวย่อลองใช้คำนาม
ตัวแปรทั่วโลกทั้งหมดในโมดูลจะต้องนำหน้าด้วย 'F' หากจำเป็นต้องมีการแลกเปลี่ยนข้อมูลระหว่างหลายโมดูลจะต้องดำเนินการโดยการประกาศแอตทริบิวต์
2.2 คำอธิบายหน่วย
เมื่อสร้างไฟล์หน่วยใหม่โปรดปรับแต่งคำอธิบายหน่วยในรูปแบบต่อไปนี้ก่อน
{********************************************************* ******** *******
ลิขสิทธิ์? (c)? 2000-2004? ********* แผนกการพัฒนาด้านเทคนิคของ บริษัท
โครงการ: --- โครงการที่หน่วยนี้เป็นของ
โมดูล: --- โมดูลการทำงานที่หน่วยนี้เป็นของ
อธิบาย: --- ฟังก์ชั่นของหน่วยนี้
ผู้แต่ง: --- สร้าง
วันที่: --- วันที่สร้าง
หมายเลขเวอร์ชันเวอร์ชัน:
การปรับเปลี่ยนประวัติ: --- ปรับเปลี่ยนพื้นที่ประวัติศาสตร์
-
แก้ไขไม่: --- แก้ไขหมายเลข
Modifier: --- แก้ไข
DateTime: --- แก้ไขเวลา
สาเหตุ: --- เหตุผลในการแก้ไข
แก้ไขไม่: --- แก้ไขหมายเลข
Modifier: --- แก้ไข
DateTime: --- แก้ไขเวลา
สาเหตุ: --- เหตุผลในการแก้ไข
-
******************************************************** ******* *****}
2.3 คำอธิบายของกระบวนการและฟังก์ชั่น
{********************************************************* ******** *******
prcedureename/functionName:
อินพุต: A --- อินพุตพารามิเตอร์คำอธิบาย, b --- คำอธิบายพารามิเตอร์อินพุต, c --- คำอธิบายพารามิเตอร์อินพุต
เอาต์พุต: x --- คำอธิบายพารามิเตอร์เอาต์พุต
const: s --- คำอธิบายคงที่ t --- คำอธิบายคงที่
var: x --- คำอธิบายตัวแปร, j --- คำอธิบายตัวแปร
อธิบาย: ---- คำอธิบายฟังก์ชั่น
หากกระบวนการหรือฟังก์ชั่นไม่ได้เขียนโดยผู้สร้างหน่วยโปรดเพิ่มรายการต่อไปนี้ในภายหลัง:
ผู้เขียน:
วันที่:
******************************************************** ******* *****}
3. การตั้งชื่อการควบคุม
ชื่อของการควบคุมสามารถใช้กับตัวย่อต่อไปนี้ แต่ตัวย่อที่ใช้จะถูกเพิ่มระหว่างชื่อควบคุม '_':
แท็บมาตรฐาน
mm tmainmenu
PM TPOPUPMENU
mmi tmainmenuitem
pmi tpopupmenuitem
lbl tlabel
Edt Tedit;
mem tmemo
btn tbutton;
cb tcheckbox
RB Tradiobutton
lb tlistbox
cb tcombobox
SCB Tscrollbar
gb tgroupbox
RG Tradiogroup
pnl tpanel
cl tcommandlist
แท็บเพิ่มเติม
sg tstringgrid
dg tdrawgrid
img timage
shp tshape
bvl tbevel
sbx tscrollbox
clb tchecklistbox
spl tsplitter
STX TSTATICTEXT
CHT TCHART
แท็บ win32
TBC TTABCONTROL
PGC tpagecontrol
il timagelist
re trichedit
tbr ttrackbar
prb tprogressbar
ud tupdown
HK Thotkey
ani taula
DTP TDATETIMEPICKER
TV TTREEVIEW
lv tlistview
hdr theadercontrol
STBTATUSBAR
tlb ttoolbar
clb tcoolbar
แท็บระบบ
tm ?? ttimer
pb ?? tpaintbox
MP? tmediaplayer
Olec? tolecontainer
ddcc? tddeclientconv
ddci? tddeclientitem
DDSC? tddeserverconv
ddSi? tddeserverItem
-
แท็บตัวอย่าง
GG ??
cg ??
SPB?
SPE?
dol?
Cal?
Ibea?
-
แท็บ Activex
cfx?
vsp
f1b ??
VTC ??
grp ??
-
แท็บ win31
dbll ??
dblc ??
ts ????
ol ????
tnb ???
NB ????
HDR ???
flb ???
DLB ???
DCB?
FCB ??
แท็บ Midas
prv ??
ซีดี?
qcds?
dcom? tdcomconnection
Olee ?? toleenterpriseconnection
SCK ??
RMS ??
กลาง?
แท็บอินเทอร์เน็ต
csk? tclientsocket
ssk? tserversocket
wbd? twebdispatcher
pp ??? tpageProducer
TP ??? TQueryTableProducer
dstp?
nmdt ?? tnmdaytime
nec ??? tnmecho
nf ???? tnmfinger
nftp ??? tnmftp
nhttp ?? tnmhttp
nmsg ?? tnmmsg
nmsg ?? tnmmsgserv
nntp ??? tnmnntp
npop ??? tnmpop3
nuup ??? tnmuupprocessor
smtp ??? tnmsmtp
nst ???? tnmstrm
ns ??? tnmstrmserv
ntm ??? tnmtime
nudp ?? tnmudp
psk ??? tpowersock
ngs ??? tnm generalserver
html?
url ?? tnmurl
sml ?? tsimplemail
แท็บการเข้าถึงข้อมูล
ds?
tbl?
qry?
sp ?? tstoredproc
db ?? tdatabase
SSN?
bm ?? tbatchmove
usql ?? tupdatesql
แท็บข้อมูลการควบคุมข้อมูล
dbg?
dbn ?? tdbnavigator
dbt ?? tdbtext
dbe ?? tdbedit
dbm?
dbi ?? tdbimage
dblb ?? tdblistbox
dbcb?
dbch?
dbrg ?? tdbradiogroup
dbll ?? tdblookuplistbox
dblc ?? tdblookupcombobox
dbre ?? tdbrichedit
dbcg ?? tdbctrlgrid
dbch ?? tdbChart
แท็บคิวบ์ตัดสินใจ
dcb ?? tdecisioncube
dcq ?? tdecisionQuery
dcs ?? tdecisionsource
dcp ?? tdecisionpivot
dcg ?? tdecisionGrid
dcgr? tdecisiongraph
แท็บ QReport
qr ?? tquickreport
qrsd? tqrsubdetail
qrb ?? tqrband
qrcb ?? tqrchildband
qrg ?? tqrgroup
qrl ?? tqrlabel
qrt ?? tqrtext
qre ?? tqreexpr
qrs?
qrm ?? tqrmemo
qrrrt ?? tqrrichtext
qrdr?
qrsh ?? tqrshape
qri ??? tqrimage
qrdi ?? tqrdbmimage
qrcr?
qrp ?? tqrpreview
qrch tqrchart
แท็บกล่องโต้ตอบ
Opendialog ???????? topendialog
Savedialog ??????? tsavedialog
openpicturedialog? topenpicturedialog
savepicturedialog ?? tsavepicturedialog
fontdialog ????????? tfontdialog
colordialog ??????? tcolordialog
printdialog ???????? tprintdialog
PrintersetUpdialog?
findDialog ?????????? tfinddialog
Toplacedialog ?????? treplacedialog
4. ขอดัดแปลง
4.1 แก้ไขบันทึกประวัติ
เมื่อทำการปรับเปลี่ยนที่ได้รับอนุมัติไปยังไฟล์ต้นฉบับผู้แก้ไขควรเพิ่มรายการประวัติการแก้ไขในส่วนหัวไฟล์โปรแกรม ในการปรับเปลี่ยนแต่ละครั้งต่อมาผู้แก้ไขจะต้องกรอกข้อมูลต่อไปนี้ในรายการ:
ตัวดัดแปลง:
DateTime:
สาเหตุ:
ความคิดเห็น:
4.2 เพิ่มบรรทัดรหัสใหม่
บรรทัดรหัสใหม่ควรมีบรรทัดแสดงความคิดเห็นก่อนและหลัง
// AB Modify Person;
เพิ่มบรรทัดของรหัส
// ae
4.3 ลบบรรทัดรหัส
ใช้บรรทัดความคิดเห็นเพื่ออธิบายก่อนและหลังการลบบรรทัดรหัส
// DB Modify Person, เวลาในการแก้ไข, คำแนะนำในการแก้ไข
// บรรทัดของรหัสที่จะลบ (แสดงความคิดเห็นคำสั่งที่จะลบ)
// de
4.4 แก้ไขบรรทัดรหัส
แก้ไขบรรทัดรหัสเพื่อลบบรรทัดรหัสและเพิ่มบรรทัดรหัสใหม่
// MB Modify Person, เวลาในการแก้ไข, คำแนะนำในการแก้ไข
// บรรทัดรหัสล่วงหน้าก่อนการแก้ไข
บรรทัดของรหัสที่แก้ไขแล้ว
//ฉัน
5. การตั้งชื่อไฟล์
ไฟล์โครงการต้องใช้ชื่อที่มีความหมาย ตัวอย่างเช่น: ไฟล์โครงการสำหรับข้อมูลระบบใน Delphi มีชื่อว่า sysinfo.dpr
3.7.2 ไฟล์ฟอร์ม
สอดคล้องกับชื่อของแบบฟอร์ม: ตัวอย่างเช่น: หากชื่อของแบบฟอร์มเป็น frrmmain ดังนั้นชื่อของไฟล์ฟอร์มคือ frmmain.dfm ไฟล์หน่วยที่เกี่ยวข้องคือ frmmain.pas
3.7.3 ไฟล์โมดูลข้อมูล
การตั้งชื่อไฟล์โมดูลข้อมูลควรสมเหตุสมผลและใช้ 'DM' เป็นคำนำหน้า ตัวอย่างเช่น: โมดูลข้อมูลผู้ใช้มีชื่อว่า 'dmcustomers.dfm' ไฟล์หน่วยที่เกี่ยวข้องคือ rdmcustomers.pas
3.7.4 ไฟล์โมดูลข้อมูลระยะไกล
ชื่อไฟล์โมดูลข้อมูลระยะไกลควรสมเหตุสมผลและใช้ 'RDM' เป็นคำนำหน้า ตัวอย่างเช่น: โมดูลข้อมูลระยะไกลของผู้ใช้มีชื่อว่า 'rdmcustomers.dfm' ไฟล์หน่วยที่เกี่ยวข้องคือ rdmcustomers.pas
3.7.5 ไฟล์หน่วยปกติ
การตั้งชื่อของไฟล์หน่วยควรสมเหตุสมผลและใช้ 'U' เป็นคำนำหน้า ตัวอย่างเช่น: หน่วยทั่วไปมีชื่อว่า 'Ugeneral.pas'