国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Visual Basic編程規范

2024-07-21 02:20:35
字體:
來源:轉載
供稿:網友

visual basic編程規范

1.      visual basic ide(集成開發環境)設置

       必須打開設置選項的“要求變量聲明”,“對齊控件到網格”,“自動縮進”開關。        tab的寬度統一為4個空格,網格單位一律設為:width 60 height 60。

2.     命名約定

       (注意:在任何時候,不能使用中文及全角字符,只允許使用英文字母、下劃線和數字)

2.1          工程的命名

       activex控件和dll工程命名格式為(….lib),exe工程直接命名,如果是通用組件工程,直接命名,如果是項目或產品工程,則使用項目或產品縮寫作為前綴。如:xwy….lib。        工程命名不必縮寫,為了表達意思和用途,可以盡可能地長,而且命名格式采用 (名詞) 、 (形容詞 + 名詞) 或 (名詞 + 動作的名詞形式)。如: stockoperationlib或stocklib。

2.2          變量的命名

    程序中的變量遵循匈牙利表示法,即“前綴+變量含義”,變量的含義為一個或多個英文單詞,每個單詞的第一個字母大寫。變量前綴為三個小寫字母示意其類型,所需添加的前綴遵循微軟在msdn中的建議。列表如下:   對于一般的計數器變量定義,應該盡可能地簡單,如:dim i as integerfor i = 0 to 100next i范圍標識:

              全局變量加前綴:’g_’ 例如:g_strfdbm

              模塊級變量加前綴:’m_’ 例如:m_strfdbm

              過程級變量不加前綴        全局變量和模塊級變量應該盡量使用全名稱,不推薦使用縮寫,如:gentitymanager常見的變量類型和控件類型前綴如下表所示:變量類型前綴列表

數據類型

前綴

示例

boolean

bln

blnloggedin

currency

cur

cursalary

control

ctl

ctllastcontrol

double

dbl

dblmiles

errobject

err

errlasterror

single

sng

sngyears

handle

hwd

hwdpicture

long

lng

lngonhand

object

obj

objusertable

integer

int

intage

string

str

strname

user-defined type

udt

udtemployee

variant (including dates)

vnt

vntdatehired

array

arr

arremployees 數據庫對象前綴示例database

dbs

dbsaccounts recordset

rec

recforecast command

cmd

cmdquery connection

con

consql

 

 

 

2.3          控件的命名

       控件命名一律使用控件類型縮寫+控件用途的命名方式,縮寫規則同變量命名,以下是常用控件的類型縮寫,應該嚴格遵守。如果使用了新的控件(包括升級版本),必須向公司提出申請,經評審通過后,協同一致其類型名稱縮寫,再進行使用。 控件類型前綴列表

控件

前綴

舉例

ado data

ado

adobiblio

animated button

ani

animailbox

checkbox

chk

chkprint

combo box

cbo

cbotitle

command button

cmd

cmdcancel

communications

com

comfax

data

dat

datbiblio

data-bound combo box

dbcbo

dbcbolanguage

data-bound grid

dbgrd

dbgrdqueryresult

common dialog control

dlg

dlgcommon

control

ctr

ctrcurrent

directory list box

dir

dirsource

drive list box

drv

drvtarget

dtpicker       dropdatecontrol

dt

 

enumeditbox

enm

 

file list box

fil

filsource

frame

fra

fralanguage

form

frm

frmmain

vfgrid

grd

 

graph

gra

 

group push button

gpb

gpbchannel

hierarchical flexgrid

flex

flexorders

horizontal scroll bar

hsb

hsbvolume

image

img

imgicon

image imagelist

img

 

label

lbl

lblhelpmessage

line

lin

linvertical

list box

lst

lstresultcodes

listview

lv

 

mci

mci

mcivideo

mdi child form

mdi

mdicontact

menu control

mnu

mnufileopen

numeditbox

nm

 

ole container

ole

olephoto

option button

opt

optspanish

panel

pnl

pnlsettings

picture box

pic

picdiskspace

picture clip

clp

clptoolbar

progressbar

prg

prgloadfile

report

rpt

 

scroll bar

sbr

 

shape

shp

shpcircle

slider

sld

sldscale

spin

spn

 

statusbar

st

 

toolbar

tb

 

text box

txt

txtaddress

timer

tmr

tmralarm

treeview

tv

tvflbm

vertical scroll bar

vsb

vsbrate

 

 

 

 

2.4          函數和過程的命名

       此處函數包括sub和function,以下這兩種過程統稱為函數。        函數表示的是一個動作,所以它的結構應該是 動詞+名詞,動詞必須小寫,后面的名稱首字母大寫,如:getmaterialcodeupdategridreadorder       函數命名盡量不要使用縮寫,而且它的名稱應該使人一目了然,能夠從名稱就知道這個函數的功能,不要使用無意義的函數名稱,如:getcode,update,readdata。       當函數名稱不足以表達其功能時,使用在函數頭部加上讓調用者足夠明白的注釋。       參數的命名:參數命名的原則是全部小寫,如果參數包括兩個或以上的單詞時,首單詞字母小寫,其它單詞首字母大寫,如showcol、isupdate。

2.5          常量的命名

       常量的命名應該全部大寫,使用‘_’作為單詞間的分隔符,單詞盡量使用全名稱,如:        public const msg_empty_row as string = “有空行存在!”       解釋:(1)  對一些常用詞應該使用簡寫,如msg(2)  使用public來聲明常量(3)  對常量的聲明必須帶上類型,如上面的as string

2.6          屬性的命名

       屬性的命名采用首字母大寫的原則,如itemcount item

2.7          類、窗體和模塊的命名

       類的命名:cls前綴+功能名詞,并且單詞首字母大寫。如:clssystemconfig        窗體命名:使用frm前綴+功能名詞,并且單詞首字母大寫。如:frmlist。        模塊命名:mod前綴+功能名詞,并且單詞首字母大寫。如modlist。以上三種命名在一個項目內必須保持唯一。

2.8          自定義控件的命名

       自定義控件的命名:名詞 + ctrl 如:editgridctrl

3.     書寫格式約定

3.1          定義

       定義的代碼塊應該放在一起,不要在中間定義變量,變量的定義應該頂行進齊,不能縮進。

如下: dim i as integerdim j as integerdim em as entitymanager       對象的定義應該盡可能地帶上所屬的庫名稱,防止以后引起名稱沖突,如引用了兩個lib,每個中都包含一個stock類,如果不使用as ….lib.stock的定義方式,則無法編譯通過,為了防止以后程序擴充和修改時引入新的庫帶來命名沖突,推薦在定義類對象時全部加上庫標識,如:       dim em as objectpersistencelib.entitymanager

3.2          空行

       空行是區分代碼塊與塊的間隔,在函數之間必須加上空行(兩行左右),而函數內部,變量聲明塊和實現塊(實現塊指除變量聲明外的其它代碼)要使用空行來間隔(一行),實現塊的內部,通過空行來標識一個功能段,如: private sub check(order as nysalebacklib.order)

'減少庫存 dim objstockitem as nystocklib.stockitemdim objstock as nystocklib.stockdim i as integer     set objstock = createstock()     for i = 0 to order.itemcount - 1            set objstockitem = order.item(i) 

        '減少庫存         call objstock.reduceitem(objstockitem, true)     next i            set objstock = nothing    end sub 

(注意:不要使用過多的空行,空行太多影響代碼閱讀!)

3.3          縮進

       縮進必須嚴格執行,變量聲明塊不縮進,實現塊必須保證全部縮進(即不可能有實現塊是行首對齊的)。       每個單位的代碼縮進為一個tab,非相關代碼留一行空白的間隔。

注:goto標簽不縮進        對于基本的控制結構,必須要有縮進,如:if、do、with、for、open、select塊,縮進示例如下:private function getmax(byref lngarray() as long) as long  dim lngmax as long  dim lngcount as long            getmax=0         for lngcount =0 to ubound(lngarray) 

         if lngarray (lngcount)>lngmax then              lngmax=lngarray(lngcount)          end if      next     end function  對于過長的語句,必須使用續行,續行位置要有明顯意義,示例:       sql = “select [code],[name] from [person] “ _              & “ where [code] like ‘001%’ “              & “ and [code] like ‘002%’ “

        函數的參數如果過長,也應該續行,示例:

'

'增加庫存

' productcode 產品編號

' spec 長度規格

' color 顏色

' patch 是否拼圈

' volumn 盤號

' ordinal 子庫存順序號

' length 長度

' ischeck 是否審核入庫增加(否則為棄審出庫增加) public sub adddetail(productcode as string, _                spec as double, _                color as string, _                patch as boolean, _                volumn as string, _                ordinal as integer, _                length as double, _                ischeck as boolean)

4.     注釋約定

4.1        注釋量

程序的注譯越詳盡,越仔細越好。程序中聲明的每一個變量,能加上注譯最好,至少用來運算或者保存關鍵數據的變量必須加上注譯。  對于每一段邏輯上實現某個基本功能的幾句代碼,最好在其上一行加上簡單注譯。對于每一個自定義的函數,不管大小都必須加上注譯。

4.2        格式

注譯的格式如下:

'****************************************************** 

 

'函數所實現的功能 

'函數的參數1的含義:xxxxx 

'函數的參數2的含義:xxxxx 

'…… 

'函數返回值所代表的錯誤信息:xxxxx

'函數的返回值為0表示執行成功,為其它值表示執行失敗

'****************************************************** public(private) function forexample(……………………) as long  '…………………………………………  end function

 在每個代碼模塊(窗體、類、模塊、控件)的最上面,必須寫上代碼編寫人、代碼創建時間、代碼修改時間和修改說明。示例:

'

'庫存修改窗體

'作者             xxxxxx

'建立日期     2005-6-22

'修改日期      2005-6-23 修改人 xxxxxx

'增加對庫存修改時同時影響最后入庫日期的功能

5.     程序設計約定

1.      程序一律從main()函數開始執行。

2.      同一個程序在一臺機器同時只能運行一次,既不能同時運行同一個程序的多個副本。

即if app.previnstance = true then end

3.      同一個登錄用戶同時只能登錄同一個系統一次。

4.      建議使用long型的變量來代替integer類型。

這樣做可以減少一些數據溢出的錯誤,而且,在win32位平臺上,cpu處理32位的數據比16位的數據速度更快。

5.      在連接字符串時使用 & 運算符,避免使用 + 運算符。

下面例子用 + 運算符來連接可能會導致問題。例如:vntvar1 = "10.01"vntvar2 = 11vntresult = vntvar1 + vntvar2 'vntresult = 21.01vntresult = vntvar1 & vntvar2 'vntresult = 10.0111

6.      當產生長字符串時,使用下劃線連接字符產生多行代碼,這樣便于閱讀或調試字符串。

當顯示一個消息框 (msgbox) 或輸入框 (inputbox),或產生一個 sql 字符串時,這一技術特別有用。例如:

 dim msg as stringmsg = "this is a paragraph that will be " _& "in a message box. the text is" _& " broken into several lines of code" _& " in the source code, making it easier" _& " for the programmer to read and debug."msgbox msg

 dim qry as stringqry = "select *" _& " from titles" _& " where [year published] > 1988"titlesqry.sql = qry

7.      不要將類型轉換的工作交給vb自動去做,而使用以下類型轉換函數。 

cbool(expression)  cbyte(expression)  ccur(expression)  cdate(expression)  cdbl(expression)  cdec(expression)  cint(expression)  clng(expression)  csng(expression)  cstr(expression)  cvar(expression)val(expression)

8.      錯誤處理(編一個函數處理所有已知錯誤)

在main()函數或主窗體load過程中添加如下代碼: 

'****************************************************** 

'打開錯誤日志文件,在form_unload()中關閉 

'******************************************************     dim strexepath as string 

     if right(app.path, 1) = "/" then          strexepath = app.path      else          strexepath = app.path & "/"  end if 

 interrlogfilehandle = freefile() 

 open strexepath + "err.log" for append shared as interrlogfilehandle     在主窗體退出函數中添加如下代碼:  '****************************************************** 

'關閉錯誤日志文件 

'******************************************************         close #interrlogfilehandle     在某個module中添加: 

'****************************************************** 

'寫入錯誤日志 

'****************************************************** 

 public sub writeerrlogfile(byval strsub as string, byval strerr as string)      print #interrlogfilehandle, date, time, strsub, strerr  end sub     在每個過程或自定義的函數中,使用如下的系統錯誤捕獲機制:  public function forexample(…………) as long         on error goto funcerror         forexample=true         ………………………      ………………………         exit function  funcerror:      forexample=false      writeerrlogfile " forexample ", "錯誤號:" & err.number & ",錯誤源:" & err.source & ",錯誤描述:" & err.description      msgbox  "……… ", vbcritical 

    '在此作內存資源回收工作  end function 

9.      窗體布局 

    窗體內各個控件的布局,建議如下:      1、所有與窗體上、下、左、右四條邊界相鄰的控件與窗體的邊緣相距120緹      2、各個控件之間的間距為:相關控件60緹,非相關控件120緹      3、按鈕控件大小為高300緹,長〉=1200緹,這也是操作系統默認按鈕的大小      4、各個控件的字體建議為宋體五號字
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 嘉峪关市| 高雄县| 奉节县| 广丰县| 泽州县| 惠水县| 黄梅县| 南开区| 通城县| 晋州市| 神农架林区| 延寿县| 留坝县| 铜陵市| 静乐县| 龙井市| 襄垣县| 彰化县| 西藏| 岳阳县| 富锦市| 海淀区| 博白县| 天长市| 荣昌县| 斗六市| 临城县| 黄浦区| 桐城市| 天长市| 大洼县| 丹凤县| 齐河县| 兴和县| 宁武县| 长武县| 满洲里市| SHOW| 祁阳县| 定西市| 江阴市|