qrm格式
Ⅰ 什么视频转码软件最好
我推荐一个给你吧,我原来是做视频网站,绝对好用!主要是他可批量转换,还可以任意加水印,并且是多线程的,而且是简体中文版哦。
影音转霸2010专业版
影音转霸2010稳定版
(有注册码的)
http://www.uzzf.com/soft/13587.html
影音转霸具有所见所得的视频加视频、图片、文字、字幕功能,可在制作过程中,随意设置水印、字幕出现的时间、位置、大小和动态效果,并预览。影音转霸可批量给视频加水印、字幕,可批量分割、合并视频。输入输出格式多达几十种。
输入格式(共56种):
3g2
3gp
3gpp
4xm
amr
apc
asf
avi
avs
dat
dv
ffm
flic
flv
gif
gxf
h264
m4v
mm
mmf
mov
mp3
mp4
m4a
mj2
mpeg
mpegts
mtv
mxf
mts
nsv
nut
nuv
roq
rm
rmvb
rtsp
swf
txd
vmd
vob
voc
wav
输出格式(共23种):
3g2
3gp
amr
asf
avi
flv
m4a
mov
mp3
mp4
mpeg
mpg
psp
rm
swf
ts
wav
wmv
vob
mkv
vcd
svcd
dvd
3.2
增加视频中加视频(画中画)
3.2
增加设计时视频水印随意显示
3.2
视频加水印时智能化位置调整
3.2
增加自动根据视频调整码率
3.2
增加保持音频原编码
3.2
加强视频字幕读取功能
3.1修正文件拖动bug
3.1修正win7
64位无法运行bug
3.1修正码率手工输入bug
3.1修正多核cpu下,线程退出bug
3.1修正视频截取算法bug,将得到更快的截取体验
3.1修正视频预览中停止的bug
3.1新增mkv的ac3音频编码
3.1新增mp4的mp3音频编码
3.0采用unicode字符集和gdi
3.0增加支持win
vista
win7
3.0增加批量视频分割处理
3.0增加srt字幕编辑功能
3.0增加支持透明水印和字幕
3.0增加设计水印时调整水印大小
3.0增加设计时预览功能,随时可以预览视频加水印、字幕后的效果,而不用转码
3.0全新艺术字模块,可设计透明化艺术字
Ⅱ 电台如何呼叫
无线电规范的呼叫方式(转载)
广泛呼叫法:
中文呼叫法:CQ CQ CQ,这里是BG1XXX ,BRAVO GOLF ONE X-RAY X-RAY X-RAY ,BG1XXX呼叫CQ并等待回答。
英文呼叫法:CQ CQ CQ,This is BG1XXX,BRAVO GOLF ONE X-RAY X-RAY X-RAY,BG1XXX calling CQ and standing-by。
U/V段简易中文呼叫法:CQ CQ CQ,这里是BRAVO GOLF ONE X-RAY X-RAY X-RAY ,BG1XXX呼叫并等待。
U/V段简易英文呼叫法:CQ CQ CQ,This is BRAVO GOLF ONE X-RAY X-RAY X-RAY,BG1XXX calling standing-by。
无论是用中文还是用英文呼叫,呼号部分一定要用字母解释法解释最少一遍。这样看起来似乎是繁琐,然而在实际通联中,往往不用解释法呼叫的,双方常常为个别发音容易混淆的英文字母反复重复,或者始终就没有抄收正确对方呼号,以致将错就错做一个无效的通联。
在英文字母中发音如:“A与I”、“B 与G D E J P T”、“F与M”、“J与Z”、“O与U”的发音由于业余无线电台音频带宽窄,以及中国人英文发音普遍不够准确,很容易产生混淆。
还有些个别的电台为了区分呼号中英文“J”与”Z”、“S”与“X”的读音,故意把 “J”读做“钩”,把 “X”读做“叉”。这种人为因素造成的混乱情况,是完全能够避免发生的。
解决上述问题的唯一方法就是用解释法对呼号解释,否则通联双方为抄收、确认呼号所耽误的时间,比一开始就用解释法呼叫要麻烦的多。
1.1 沟通联络以前的一般呼叫
在听清对方呼号以前的呼叫格式为:CQ +本台呼号+“呼叫”+“听到请回答”,如:
“CQ、CQ、CQ,BA1AAA呼叫、BA1AAA呼叫、BA1AAA呼叫,听到请回答。”
在听清对方呼号以后的呼叫格式为:对方呼号+本台呼号+“呼叫”+“听到请回答”,如:
“BA1BBB、BA1BBB、BA1BBB,BA1AAA呼叫、BA1AAA呼叫、BA1AAA呼叫,听到请回答。”
1.2 回答呼叫
回答对方呼叫的格式为:对方呼号+“我是”本台呼号+“你的信号”+对方信号报告+“听到请回答”,例如:
“BA1AAA、BA1AAA、BA1AAA,我是BA1XYZ、我是BA1XYZ、我是BA1XYZ,你的信号五勾、信号五勾,听到请回答。”
1.3 “×××呼叫”与“我是×××”的区别
在上述程序中,“×××呼叫”表示自己还没有确认听到对方的回答。“我是×××”则表示自己已经听到对方信号,有了特定的联络对象。
1.3 “听到请回答”与“请回答”的区别
“听到请回答”表示自己还没有收到对方的回答,或者在联络过程中由于某种原因丢失了对方信号。“请回答”则表示在自己确信对方能听到的情况下要求对方回答。
1.4 呼叫时必须报清本台呼号
每次呼叫必须报清本台呼号,除了情况紧迫时的VHF/UHF频段本地联络可以只报后缀外,呼叫时应报出完整呼号。沟通联络后,也必须经常在每次发信开头或末尾报清本台呼号,以便对方确认,并便于在本频率上守听、特别是刚刚调谐到本频率的其他友台了解情况。
1.5 沟通联络后每次发信的起始用语
双方沟通联络之后,每个回合发信前应加上“完全抄收(或抄收、Roger)”、“基本抄收”、“部分抄收”、“抄收困难”、“没有抄收(或无法抄收、No )”的用语,以便对方了解上一轮联络的情况,根据信息的重要程度决定是否需要重复或者核对先前的内容。
1.6 沟通联络后每次发信的结尾用语
双方沟通联络之后,每个回合发信结束时的用语应为“请讲”、“请回答”、“请过来”、“完毕”、“Over”等简洁的词语。避免使用“现在我把话筒交还给您”之类冗长的结尾语。
1.7 遇到对方“抄收困难”时的对策
1.7.1 当自己对上一轮对方信息不是“抄收”或“全部抄收”时,应该首先明确要求对方重发的内容,然后再说自己要说的内容。
1.7.2 遇到对方“抄收困难”或“无法抄收”时,如果发信方认为刚才发出的信息特别重要,为避免差错,可以主动要求接收方核对。例如:
“抄收。请核对上次报文。请讲。”
接收方应复读刚才收到的内容。例如:
“抄收。请核对:×××××××。完毕。”
发送方应明确加以确认。例如:
“抄收。核对正确。这里继续发送,请抄收:×××××。抄收如何?请过来。”
1.7.3 遇到对方“抄收困难”或“无法抄收”时,应立即压缩掉非十分必要的通信内容,以免因反复重发或核对次要信息而浪费宝贵的时间。
1.7.4 遇到“抄收困难”或“无法抄收”时,双方都应当缩短每个回合发出的信息,以便及时确认或者请求重发,有利于保证联络的效率及准确性。
1.8 “请求”和“请”的区别
“请求”带有征求对方同意的意思,例如“请求改频两幺四幺洞”,表示自己不能确定这个建议是否合适,需要征求对方意见。
“请”则是一种礼貌的直接指示,没有征求意见的成分。例如“请改频幺四五洞洞”,只希望对方照办就是。
1.9 对“请求”或“请”的回答
1.9.1 同意对方“请求×××”时,其回答应为“同意(或OK),×××”,例如“同意,改频两幺四幺洞”。
1.9.2 同意执行对方“请×××”时,其回答为“确认(或OK),×××”,如“OK,改频幺四五洞洞”。
1.9.3 不同意对方“请求×××”或“请×××”时,其回答应为“不能×××”,必要时简单说明原因,并提出可行的建议。
1.9.4 没有听清对方“请求”或“请”的内容时,应明确说明“没有抄收”,要求对方重发,避免因语言模糊而使对方误以为自己已经明白。
1.10 请求重复
请求对方重复的标准用语为“请重报×××”或“请重复×××”。例如“请重报QTH”、“请重复最后一句”、“请重复上次内容”等。
1.11 结束联络 用语
1.11.1 双方结束联络时应使用“再见”或者“××××(本台呼号)退出”表示自己方面已经结束发信。呼救电台应尽量在道“再见”前预告下次可能发信的时间和频率,以便对方或其它守听电台注意守听。
1.11.2 其它电台必须在听到双方都道过“再见”,并且确认其在十秒钟之内没有再次使用频率,方可在此频率呼叫。
1.12 其余常见规范化用语
请给我信号报告;
你的信号××(××为RS信号报告);
我受他台干扰;
我受×××(电台呼号)干扰(或“QRM”);
我受天电干扰(或“QRN”)。(包括雷雨、大气静放电等);
我受电气干扰。(包括电气火花放电、工业或电器设备的谐波干扰等);
我受环境干扰。(指周围的非电干扰,例如环境噪声过大等);
请求(或“请”)改频(或“QSY”)×××××(其中×××××为以千赫计的频率,例如“21395”;144MHz以上可以省略最后一位零,例如“14458”);
确认改频×××××(或“QSY”×××××)(其中×××××为以千赫计的频率,例如“21395”;144MHz以上可以省最后一位零,例如“14458”);
这里正在守听(或“QRX”)×××××(其中×××××为以千赫计的频率,例如“21395”,144MHz以上可以省略最后一位零,例如“14458”);
请转告(或“QSP”)××××。(其中××××为其它电台呼号,救援机关名称及其信息等);
你的信号衰落(或“QSB”);
请增加电力(或“QRS”);
请发慢些(或“QRS”);
请报你的位置(或“QTH”);
我的位置(或“QTH”)×××××;
1.13 呼救
呼救信号是最高级别的信号,任何业余电台收听到呼救信号时,不论是否正在联络,必须立即中断发射,改为守听呼救信号,并给予必要的协助。
只有第一现场的电台直接报告涉及人员生命危险的情况下才可使用呼救呼叫。
呼救时应采用国际普遍使的用航空呼救呼叫,即英文(或法文)发音的“May Day”(相似普通话读音为“麦代”),以便使所有国内外业余电台保持肃静,为通信扫清频率。如:
“May Day、May Day、May Day!BA1AAA求救,BA1AAA求救,BA1AAA求救!听到请回答。”
1.14 转发信息的紧急呼叫
当电台有必要代替呼救电台转发信息时,可以使用紧急呼叫。
50MHz以下(含)的呼救信号尽量使用英文发音的“Emergency Call”.
如:“Emergency Call,BA1AAA呼叫、BA1AAA呼叫、BA1AAA呼叫,听到请回答。”
50MHz以上的呼救信号为普通话的“紧急转报”。
如:“紧急CQ,紧急CQ!BA1AAA呼叫、BA1AAA呼叫、BA1AAA呼叫,听到请回答。”
1.15呼救电台沟通联络后,其它电台必须守听,不得随意发射
当发现已经有其它电台回答呼救或者作紧急呼叫的电台时,应停止发射,在此频率守听,并详细记录有关联络内容。除非必要,一般不得任意插入。当听到其它电台与呼救或者紧急呼叫电台的联络出现困难时,只有当确认自己插入帮助肯定能改善情况时,才能插入帮助,严防贸然插入反而扰乱原有联络。要善于对情况作出快速、冷静的判断,尽一切力量积极帮助,又不致帮倒忙。
1.16 解除求救
呼救电台在紧急情况得到解决时,应及时在结束联络时清楚地发出解除呼救的信号,以免其它电台长时间作无谓的守听。例如:
“BA3ABC,我是BA3AAA。救护队已经到达。现在无事了。BA3AAA解除呼救,BA3AAA解除呼救。再见。”
Ⅲ 求仙之天缘v2存档不要太BT的. 邮箱[email protected]~还有发那种好多英文字母过来的.我看不懂.求解释清楚
[FileName]
ListFile=侠客等级32|1|枭雄等级53|2|豆丁等级66|3|
[Hero1]
Date=]WyrrR[MwroSmqqR[
DateStock=-10651979
[Hero2]
Date=R][[
DateStock=-20741982
[Hero3]
Date=qpUuqqSyrrWvqbXtpbTxqqWmrqR[]rrYkrpXmrrUybqTqpoNvqqVnrqR[
DateStock=-40701808
把这些复制了然后粘贴到魔兽目录下的SAVE里的xdty用记事本格式打开 把里面的东西都删掉或者保存到别的地方那是你以前的人物 然后就把以上粘贴就OK了
Ⅳ 求仙之天缘V2法师存档
我把bt文档给你,你把它保存成xzxd格式的文档就行了,我给你发过去了
[FileName]
ListFile=怒熊等级62|1|怒熊等级77|2|侠客等级69|3|红颜等级57|4|侠客等级100|5|侠客等级100|6|侠客等级52|7|鬼姬等级53|8|
[Hero1]
Date=MqopTvpqSvrqR[[<
DateStock=-32370847
[Hero2]
Date=NvqqUnprRfqqSspoZzqqXmpbVxbrR_XqqqWyopYurrR]qpYvqoSvpqNvrbVtbqR_MqopTvpqSvrqR[ZyqrR[bqRbprRfrbVtbrRarbTtb<
DateStock=-23192621
[Hero3]
Date=R]UnrbUtqqTnprZyqpSybqR_
DateStock=-35273154
[Hero4]
Date=R]brRarpR^<
DateStock=-22328737
[Hero5]
Date=bqR_VtbpRa
DateStock=-4280756
[Hero6]
Date=VypbVxbqXqprVwrrZwqoR]
DateStock=-14392774
[Hero7]
Date=NvqqVnqqR^
DateStock=-59177654
[Hero8]
Date=pbD
DateStock=-38877058
Ⅳ 在学delphi的中途再加java会不会太难
程序的能力是靠时间积累的.
使用不同的语言是表达形式.
你用DELPHI,再学JAVA,是换一种程序表达形式.
别担心,我这里有delphi里面的组件,的所有教程.
http://www.ibook8.com/book/delphi.htm
Delphi的编码规范
Santch
1.规范简介
本规范主要规定Delphi源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。
2.单元的格式
2.1 基本要求
2.1.1 缩进
缩进就是在当源程序的级改变时为增加可读性而露出的两个空格。缩进的规则为每一级缩进两个空格。不准许使用Tab。因为Tab会因为用户所作的设置不同而产生不同的效果。当遇到begin 或进入判断、循环、异常处理、with语句、记录类型声明、类声明等的时侯增加一级, 当遇到end或退出判断、循环、异常处理、with语句、记录类型声明、类声明等的时侯减少一级。
2.1.2 Begin…End
begin语句和end语句在源程序中要独占一行,例如:
for I := 0 to 10 do begin //不正确的用法
end;
for I := 0 to 10 do //正确的用法
begin
end;
2.1.3空格
在操作符及逻辑判断符号的两端添加空格,例如:I := I + 1;,a and b 等,
但添加括号时不需要空格。
例如:if ( a>b )and( a错误的用法
if (a > b) and (a < c) then //正确的用法
2.1.4 变量
尽量不用缩写,尽量用名词,如有多个单词则每个单词的第一个字符一定要大写;见名知意
所有模块内全局变量必须用‘F’为前缀。如果几个模块之间需要进行资料交换,则需要通过声明属性的方法来实现。
2.2单元说明
新建每一个新单元文件时,请先按如下格式定制单元说明
{*******************************************************
Copyright?(c)?2000-2004?*********公司技术开发部
Project:---该单元所属的项目
Mole:---该单元所属的功能模块
Describe:---该单元的功能
Author:---创建人
Date:---创建日期
Version版本号:
History`s Modification:---修改历史区域
{*************************
Modify No:---修改编号
Modifier:---修改人
DateTime:---修改时间
Cause:---修改原因
Modify No:---修改编号
Modifier:---修改人
DateTime:---修改时间
Cause:---修改原因
*************************}
*******************************************************}
2.3 过程与函数的说明
{*******************************************************
PrcereeName/FunctionName:
Input: a---输入参数说明,b---输入参数说明,c---输入参数说明
Output: x---输出参数说明
Const: s---常量说明,t---常量说明
var: x---变量说明, j---变量说明
Describe:----功能描述
若该过程或函数不是该单元创建人所撰写请在此后再加上以下几项内容:
Author:
Date:
*******************************************************}
3.控件的命名
控件的名称可使用以下简写,但所用简写于控件名称之间药添加‘_’:
Standard Tab
mm TMainMenu
pm TPopupMenu
mmi TMainMenuItem
pmi TPopupMenuItem
lbl TLabel
edt TEdit ; TSpinEdit ; TMaskEdit
mem TMemo
btn TButton ; TBitBtn ; TSpeedButton ; TSpinButton
cb TCheckBox
rb TRadioButton
lb TListBox
cb TComboBox
scb TScrollBar
gb TGroupBox
rg TRadioGroup
pnl TPanel
cl TCommandList
Additional Tab
sg TStringGrid
dg TDrawGrid
img TImage
shp TShape
bvl TBevel
sbx TScrollBox
clb TCheckListbox
spl TSplitter
stx TStaticText
cht TChart
Win32 Tab
tbc TTabControl
pgc TPageControl
il TImageList
re TRichEdit
tbr TTrackBar
prb TProgressBar
ud TUpDown
hk THotKey
ani TAnimate
dtp TDateTimePicker
tv TTreeView
lv TListView
hdr THeaderControl
stb TStatusBar
tlb TToolBar
clb TCoolBar
System Tab
tm ??TTimer
pb ??TPaintBox
mp ?TMediaPlayer
olec ?TOleContainer
ddcc ?TDDEClientConv
ddci ?TDDEClientItem
ddsc ?TDDEServerConv
ddsi ?TDDEServerItem
?
Samples Tab
gg?? TGauge
cg?? TColorGrid
spb?
spe?
dol? TDirectoryOutline
cal? TCalendar
ibea? TIBEventAlerter
?
ActiveX Tab
cfx? TChartFX
vsp?? TVSSpell
f1b?? TF1Book
vtc?? TVTChart
grp?? TGraph
?
Win31 Tab
dbll?? TDBLookupList
dblc?? TDBLookupCombo
ts???? TTabSet
ol???? TOutline
tnb??? TTabbedNoteBook
nb???? TNoteBook
hdr??? THeader
flb??? TFileListBox
dlb??? TDirectoryListBox
dcb?? TDriveComboBox
fcb?? TFilterComboBox
Midas Tab
prv?? TProvider
cds?? TClientDataSet
qcds?? TQueryClientDataSet
dcom? TDCOMConnection
olee?? TOleEnterpriseConnection
sck?? TSocketConnection
rms?? TRemoteServer
mid?? TmidasConnection
Internet Tab
csk ?TClientSocket
ssk ?TServerSocket
wbd ?TWebDispatcher
pp ???TPageProcer
tp ???TQueryTableProcer
dstp? ?TDataSetTableProcer
nmdt ??TNMDayTime
nec ???TNMEcho
nf ????TNMFinger
nftp ???TNMFtp
nhttp ??TNMHttp
nMsg ??TNMMsg
nmsg ??TNMMSGServ
nntp ???TNMNNTP
npop ???TNMPop3
nuup ???TNMUUProcessor
smtp ???TNMSMTP
nst ????TNMStrm
nsts ???TNMStrmServ
ntm ???TNMTime
nudp ??TNMUdp
psk ???TPowerSock
ngs ???TNMGeneralServer
html? ?THtml
url? ??TNMUrl
sml ??TSimpleMail
Data Access Tab
ds? ?TDataSource
tbl? ?TTable
qry? ?TQuery
sp ??TStoredProc
db ??TDataBase
ssn? ?TSession
bm ??TBatchMove
usql ??TUpdateSQL
Data Controls Tab
dbg? ?TDBGrid
dbn ??TDBNavigator
dbt ??TDBText
dbe ??TDBEdit
dbm? ?TDBMemo
dbi ??TDBImage
dblb ??TDBListBox
dbcb? ?TDBComboBox
dbch? ?TDBCheckBox
dbrg ??TDBRadioGroup
dbll ??TDBLookupListBox
dblc ??TDBLookupComboBox
dbre ??TDBRichEdit
dbcg ??TDBCtrlGrid
dbch ??TDBChart
Decision Cube Tab
dcb ??TDecisionCube
dcq ??TDecisionQuery
dcs ??TDecisionSource
dcp ??TDecisionPivot
dcg ??TDecisionGrid
dcgr ?TDecisionGraph
QReport Tab
qr ??TQuickReport
qrsd ?TQRSubDetail
qrb ??TQRBand
qrcb ??TQRChildBand
qrg ??TQRGroup
qrl ??TQRLabel
qrt ??TQRText
qre ??TQRExpr
qrs? ?TQRSysData
qrm ??TQRMemo
qrrt ??TQRRichText
qrdr? ?TQRDBRichText
qrsh ??TQRShape
qri ???TQRImage
qrdi ??TQRDBMImage
qrcr? ?TQRCompositeReport
qrp ??TQRPreview
qrch TQRChart
Dialogs Tab
OpenDialog ???????TOpenDialog
SaveDialog ???????TSaveDialog
OpenPictureDialog ?TOpenPictureDialog
SavePictureDialog ??TSavePictureDialog
FontDialog ????????TFontDialog
ColorDialog ???????TColorDialog
PrintDialog ????????TPrintDialog
PrinterSetupDialog? ?TPrintSetupDialog
FindDialog ?????????TFindDialog
ReplaceDialog ??????TReplaceDialog
4.修改的要求
4.1修改历史记录
对源文件进行经过批准的修改时,修改者应在程序文件头加入修改历史项。在以后的每一次修改时,修改者都必须在该项目中填写下列信息:
Modifier:
DateTime:
Cause:
Comment:
4.2新增代码行
新增代码行的前后应有注释行说明。
// ab 修改人; 修改时间; 修改说明。
新增代码行
// ae
4.3删除代码行
删除代码行的前后用注释行说明。
//db 修改人,修改时间,修改说明。
//要删除的代码行(将要删除的语句进行注释)
//de
4.4修改代码行
修改代码行以删除代码行后在新增代码行的方式进行。
//mb 修改人,修改时间,修改说明。
//pre 修改前的代码行
修改后的代码行
//me
5.文件的命名
项目文件必须使用一个有意义的名字。例如: Delphi中系统信息的项目文件被命名为 SysInfo.dpr。
3.7.2 Form 文件
同Form的名称相一致:例如:Form的名称为frrmMain则Form文件的名称就为frmMain.dfm。对应的Unit文件就是frmMain.pas
3.7.3 Data Mole 文件
data mole文件的命名应该有意义,并且使用‘DM’作为前缀。例如: 用户data mole 被命名为‘dmCustomers.dfm’。 对应的Unit文件就是rdmCustomers.pas
3.7.4 Remote Data Mole 文件
remote data mole文件的命名应该有意义,并且使用‘RDM’作为前缀。例如:用户remote data mole 被命名为‘rdmCustomers.dfm’。 对应的Unit文件就是rdmCustomers.pas
3.7.5普通 Unit文件
unit文件的命名应该有意义,并且使用‘u’作为前缀。例如: 通用unit 被命名为‘uGeneral.pas’。
祝你好运!!!!!!!!!!!!!!!!!!
Ⅵ 求最新损益表
已发送、请查收、谢谢、
diyer8 diyer6
新资产负债表、利润表、现金流量表和所有者权益变动表格式.rar
现金流量报表.rar ;
自动编制现金流量表.rar ;
多功能凭证汇总表.rar ;
固定资产折旧表.rar ;
滑冰歌工资表.rar ;
现金、票据盘点表及银行调节表.rar ;
银行余额调节表.rar ;
自动计算财务报表.rar ;
应付帐款管理系统.rar ;
丁字帐自动生成,科目余额表、资产负债表、损益表、现金流量表.rar ;
工业企业09年最新版本资产负债表.zip ;
税务-2009公式版的新企业所得税申报表.rar ;
支票管理.rar ;
自动生成科目汇总表、利润表、资产负债表.rar
Ⅶ 源码的书写规则
Delphi 源码格式书写规范 学任何一门语言,都要注意源码格式书写规范.下面说说Delphi 源码格式书写规范.1.规范简介
本规范主要规定Delphi源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。
2.一般格式规范
2.1缩进
缩进就是在当源程序的级改变时为增加可读性而露出的两个空格。缩进的规则为每一级缩进两个空格。不准许使用Tab。因为Tab会因为用户所作的设置不同而产生不同的效果。当遇到begin 或进入判断、循环、异常处理、with语句、记录类型声明、类声明等的时侯增加一级, 当遇到end或退出判断、循环、异常处理、with语句、记录类型声明、类声明等的时侯减少一级。例如:
if TmpInt <> 100 then
TmpInt := 100;
2.2 Begin..End
begin语句和end语句在源程序中要独占一行,例如:
for I := 0 to 10 do begin //不正确的用法
end;
for I := 0 to 10 do //正确的用法
begin
end;
2.3空格
在操作符及逻辑判断符号的两端添加空格,例如:I := I + 1;,a and b 等,但添加括号时不需要空格。例如:if ( a > b ) then //错误的用法
If (a > b) then //正确的用法
又例如:procere Test(Param1: integer; Param3: string);
3. Object Pascal语法书写格式规范
3.1保留字
Object Pascal 语言的保留字或关键词应全部使用小写字母。
3.2过程和函数
3.2.1命名及格式
过程和函数的名称应全部使用有意义的单词组成,并且所有单词的第一个字母应该使用大写字母。例如:
procere formatharddisk;//不正确的命名
procere FormatHardDisk;//正确的命名
设置变量内容的过程和函数,应使用Set作为前缀,例如:
procere SetUserName;
读取变量内容的过程和函数,应使用Get作为前缀,例如:
function GetUserName: string;
3.2.2 过程和函数的参数
3.2.2.1命名
统一类型的参数写在同一句中:
procere Foo(Param1, Param2, Param3: Integer; Param4: string);
3.2.2.2命名
所有参数必须是有意义的;并且当参数名称和其它属性名称重了的时候,加一个前缀'A', 例如:
procere SomeProc(AUserName: string; AUserAge: integer);
3.2.2.3命名冲突
当使用的两个unit中包括一个重名的函数或过程时, 那幺当你引用这一函数或过程时,将执行在use 子句中后声明的那个unit中的函数或过程。为了避免这种'uses-clause-dependent'需要在引用函数或过程时,写完整函数或过程的出处。例如:
SysUtils.FindClose(SR);
Windows.FindClose(Handle);
3.3 变量
3.3.1 变量命名及格式
首先所有变量必须起有意义的名字,使其它组员可以很容易读懂变量所代表的意义,变量命名可以采用同义的英文命名,可使用几个英文单词,但每一单词的首字母必须大写。例如:
var
WriteFormat::string;
同时对于一些特定类型可采用一定的简写如下:
指针类型
P 纪录类型
Rec 数组类型
Arr 类
Class 循环控制变量通常使用单一的字符如:i, j, 或 k。 另外使用一个有意义的名字例如:UserIndex ,也是准许的。
3.3.2 局部变量
在过程中使用局部变量遵循所有其它变量的命名规则。
3.3.3 全局变量
尽量不使用全局变量,如必须使用全局变量则必须加前缀'g',同时应在变量名称中体现变量的类型。例如:
gprecUserCount: point;//名称为UserCount的全局变量,其类型为指向一结构的指针
但是在模块内部可以使用全局变量。所有模块内全局变量必须用'F'为前缀。如果几个模块之间需要进行资料交换,则需要通过声明属性的方法来实现。例如:
type
TFormOverdraftReturn = class(TForm)
private
{ Private declarations }
FuserName: string;
FuserCount: Integer;
Procere SetUserName(Value: string);
Function GetUserName: string;
public
{ Public declarations }
property UserName: string read GetUserName write SetUserName;
property UserCount: Integer read FuserCount write FuserCount;
end;
3.4类型
3.4.1 大小写协议
保留字的类型名称必须全部小写。Win32 API 的类型通常全部大写,对于其它类型则首字母大写,其余字母小写,例如:
var
MyString: string; // reserved word
WindowHandle: HWND; // Win32 API type
I: Integer; // type identifier introced in System unit
3.4.2 浮点类型
尽量不使用 Real 类型,他只是为了和旧的Pascal代码兼容,尽量使用Double 类型。Double 类型是对处理器和数据总线做过最优化的并且是IEEE定义的标准数据结构。当数值超出Double的范围时,使用Extended 。但Extended不被Jave支持。但使用其它语言编写的DLL时可能会使用Single 类型。
3.4.3 枚举类型
枚举类型的名字必须有意义并且类型的名字之前要加前缀'T'。枚举类型的内容的名字必须包含枚举类型名称的简写,例如:
TSongType = (stRock, stClassical, stCountry, stAlternative, stHeavyMetal, stRB);
3.4.4 数组类型
数组类型的名字必须有意义并且类型的名字之前要加前缀'T'。如果声明一个指向数组类型的指针必须在该类型的名字之前加前缀'P',例如:
type
PCycleArray = ^TCycleArray;
TCycleArray = array[1..100] of integer;
3.4.5记录类型
记录类型的名字必须有意义并且类型的名字之前要加前缀'T'。如果声明一个指向数组类型的指针必须在该类型的名字之前加前缀'P',例如:
type
PEmployee = ^TEmployee;
TEmployee = record
EmployeeName: string
EmployeeRate: Double;
end;
3.5类
3.5.1 命名及格式
类的名字必须有意义并且类型的名字之前要加前缀'T'。例如:
type
TCustomer = class(TObject)
类实例的名字通常是去掉'T'的类的名字。例如:
var
Customer: TCustomer;
3.5.2 类中的变量
3.5.2.1命名及格式
类的名字必须有意义并且类型的名字之前要加前缀'F'。所有的变量必须是四有的。如果需要从外部访问此变量则需要声明一属性
3.5.3 方法
3.5.3.1命名及格式
同函数和过程的命名及格式。
3.5.3.2 属性访问方法
所有的属性访问方法必须出现在private 或 protected 中。属性访问方法的命名同函数和过程的命名另外读方法(reader method)必须使用前缀'Get'. 写方法(writer method)必须使用前缀'Set'。写方法的参数必须命名为'Value',其类型同所要写的属性相一致。例如:
TSomeClass = class(TObject)
private
FSomeField: Integer;
protected
function GetSomeField: Integer;
procere SetSomeField( Value: Integer);
public
property SomeField: Integer read GetSomeField write SetSomeField;
end;
3.6属性
3.6.1 命名及格式
同其用操作的,出去前缀'F'的类的变量的名称相一致 。
3.7文件
3.7.1项目文件
3.7.1.1项目目录结构
程序主目录--Bin(应用程序所在路径)
-Db(本地数据库所在路径)
-Doc(文档所在路径)
-Hlp(帮助文件所在路径)
-Backup(备份路径)
-Tmp(临时文件路径)
3.7.1.2命名
项目文件必须使用一个有意义的名字。例如: Delphi中系统信息的项目文件被命名为 SysInfo.dpr。
3.7.2 Form 文件
3.7.2.1命名
同Form的名称相一致:例如:Form的名称为FormMain则Form文件的名称就为FormMain.frm。
3.7.3 Data Mole 文件
3.7.3.1命名
data mole文件的命名应该有意义,并且使用'DM'作为前缀。例如: 用户data mole 被命名为'DMCustomers.dfm'。
3.7.4 Remote Data Mole 文件
3.7.4.1 命名
remote data mole文件的命名应该有意义,并且使用'RDM'作为前缀。例如:用户remote data mole 被命名为'RDMCustomers.dfm'。
3.7.5 Unit文件
3.7.5.1普通 Unit
3.7.5.1.1 Unit文件命名
unit文件的命名应该有意义,并且使用'unit'作为前缀。例如: 通用unit 被命名为'UnitGeneral'。
3.7.5.2 Form Units
3.7.5.2.1命名
Form unit 文件的名字必须和Form的名称保持一致。例如:主窗体叫FormMain.pas 则Form Unit文件的名字为:UnitFormMain。
3.7.5.3 Data Mole Units
3.7.5.3.1命名
Data Mole unit 文件的名字必须和Data Mole的名称保持一致。例如:主Data Mole叫DMMain.pas 则Data Mole Unit文件的名字为:UnitDMMain。
3.7.5.4 文件头
在所有文件的头部应写上此文件的用途,作者,日期及输入和输出。例如:
{
修改日期:
作者:
用途:
本模块结构组成:
}
3.7.6 Forms和Data Moles Forms
3.7.6.1 Form类
1. Form类命名标准
Forms类的命名应该有意义,并且使用'TForm'作为前缀。例如: About Form类的名字为:
TAboutForm = class(TForm)
主窗体的名字为
TMainForm = class(TForm)
2. Form类实例的命名标准
Form 的类实例的名字应同期掉'T'的Form类的名字相一致。例如:
Type Name
Instance Name TaboutForm
AboutForm TmainForm
MainForm TCustomerEntryForm
CustomerEntryForm
3.7.6.2 Data Moles Form
3.7.6.2.1. Data Mole Form 命名标准
Data Moles Forms类的命名应该有意义,并且使用'TDM'作为前缀。例如:
TDMCustomer = class(TDataMole)
TDMOrders = class(TDataMole)
3.7.6.2.2. Data Mole 实例命名标准
Data Mole Form 的类实例的名字应同期掉'T'的Data Mole Form类的名字相一致。例如:
Type Name
Instance Name TCustomerDataMole
CustomerDataMole TordersDataMole
OrdersDataMole 3.8控件
3.8.1 控件实例的命名
控件的实例应使用去掉'T'该控件类的名称作为前缀,例如:
输入用户姓名的Tedit的名字为:EditUserName。
3.8.2 控件的简写
控件的名称可使用以下简写,但所用简写于控件名称之间药添加'_':
3.8.2.1 Standard Tab
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
3.8.2.2 Additional Tab
bbtn TBitBtn
sb TSpeedButton
me TMaskEdit
sg TStringGrid
dg TDrawGrid
img TImage
shp TShape
bvl TBevel
sbx TScrollBox
clb TCheckListbox
spl TSplitter
stx TStaticText
cht TChart
3.8.2.3 Win32 Tab
tbc TTabControl
pgc TPageControl
il TImageList
re TRichEdit
tbr TTrackBar
prb TProgressBar
ud TUpDown
hk THotKey
ani TAnimate
dtp TDateTimePicker
tv TTreeView
lv TListView
hdr THeaderControl
stb TStatusBar
tlb TToolBar
clb TCoolBar
3.8.2.4 System Tab
tm TTimer
pb TPaintBox
mp TMediaPlayer
olec TOleContainer
ddcc TDDEClientConv
ddci TDDEClientItem
ddsc TDDEServerConv
ddsi TDDEServerItem
3.8.2.5 Internet Tab
csk TClientSocket
ssk TServerSocket
wbd TWebDispatcher
pp TPageProcer
tp TQueryTableProcer
dstp TDataSetTableProcer
nmdt TNMDayTime
nec TNMEcho
nf TNMFinger
nftp TNMFtp
nhttp TNMHttp
nMsg TNMMsg
nmsg TNMMSGServ
nntp TNMNNTP
npop TNMPop3
nuup TNMUUProcessor
smtp TNMSMTP
nst TNMStrm
nsts TNMStrmServ
ntm TNMTime
nudp TNMUdp
psk TPowerSock
ngs TNMGeneralServer
html THtml
url TNMUrl
sml TSimpleMail
3.8.2.6 Data Access Tab
ds TDataSource
tbl TTable
qry TQuery
sp TStoredProc
db TDataBase
ssn TSession
bm TBatchMove
usql TUpdateSQL
3.8.2.7 Data Controls Tab
dbg TDBGrid
dbn TDBNavigator
dbt TDBText
dbe TDBEdit
dbm TDBMemo
dbi TDBImage
dblb TDBListBox
dbcb TDBComboBox
dbch TDBCheckBox
dbrg TDBRadioGroup
dbll TDBLookupListBox
dblc TDBLookupComboBox
dbre TDBRichEdit
dbcg TDBCtrlGrid
dbch TDBChart
3.8.2.8 Decision Cube Tab
dcb TDecisionCube
dcq TDecisionQuery
dcs TDecisionSource
dcp TDecisionPivot
dcg TDecisionGrid
dcgr TDecisionGraph
3.8.2.9 QReport Tab
qr TQuickReport
qrsd TQRSubDetail
qrb TQRBand
qrcb TQRChildBand
qrg TQRGroup
qrl TQRLabel
qrt TQRText
qre TQRExpr
qrs TQRSysData
qrm TQRMemo
qrrt TQRRichText
qrdr TQRDBRichText
qrsh TQRShape
qri TQRImage
qrdi TQRDBMImage
qrcr TQRCompositeReport
qrp TQRPreview
qrch TQRChart
3.8.2.10 Dialogs Tab
OpenDialog TOpenDialog
SaveDialog TSaveDialog
OpenPictureDialog TOpenPictureDialog
SavePictureDialog TSavePictureDialog
FontDialog TFontDialog
ColorDialog TColorDialog
PrintDialog TPrintDialog
PrinterSetupDialog TPrintSetupDialog
FindDialog TFindDialog
ReplaceDialog TReplaceDialog
3.8.2.11 Win31 Tab
dbll TDBLookupList
dblc TDBLookupCombo
ts TTabSet
ol TOutline
tnb TTabbedNoteBook
nb TNoteBook
hdr THeader
flb TFileListBox
dlb TDirectoryListBox
dcb TDriveComboBox
fcb TFilterComboBox
3.8.2.12 Samples Tab
gg TGauge
cg TColorGrid
spb TSpinButton
spe TSpinEdit
dol TDirectoryOutline
cal TCalendar
ibea TIBEventAlerter
3.8.2.13 ActiveX Tab
cfx TChartFX
vsp TVSSpell
f1b TF1Book
vtc TVTChart
grp TGraph
3.8.2.14 Midas Tab
prv TProvider
cds TClientDataSet
qcds TQueryClientDataSet
dcom TDCOMConnection
olee TOleEnterpriseConnection
sck TSocketConnection
rms TRemoteServer
mid TmidasConnection
4.修改规范
本规则所做的规定仅适用于已经纳入配置管理的程序。在这类修改中,要求保留修改前的内容、并标识出修改和新增的内容。并在文件头加入修改人、修改日期、修改说明等必要的信息。
4.1修改历史记录
对源文件进行经过批准的修改时,修改者应在程序文件头加入修改历史项。在以后的每一次修改时,修改者都必须在该项目中填写下列信息:
修改人
修改时间
修改原因
修改说明即如何修改
4.2新增代码行
新增代码行的前后应有注释行说明。
// 修改人,修改时间,修改说明
新增代码行
// 修改结束
4.3删除代码行
删除代码行的前后用注释行说明。
//修改人,修改时间,修改说明
//要删除的代码行(将要删除的语句进行注释)
//修改结束
4.4修改代码行
修改代码行以删除代码行后在新增代码行的方式进行。
//修改人,修改时间,修改说明
//修改前的代码行
//修改结束
//修改后的代码行
修改后的代码行
//修改结束