亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 自定義過程與函數 .txt

?? delphi知識收集 我個人的小小收集
?? TXT
字號:
自定義過程與函數 
--------------------------------------------------------------------------------
作者:不詳  來源于:不詳  發(fā)布時間:2005-2-13 15:48:00 
Pascal 過程與函數 
Pascal中的例程有兩種形式:過程和函數。理論上說,過程是你要求計算機執(zhí)行的操作,函數是能返回值的計算。兩者突出的不同點在于:函數能返回計算結果,即有一個返回值,而過程沒有。兩種類型的例程都可以帶多個給定類型的參數。

不過實際上函數和過程差別不大,因為你可以調用函數完成一系列操作,跳過其返回值(用可選的出錯代碼或類似的東西代替返回值);也可以通過過程的參數傳遞計算結果(這種參數稱為引用,下一部分會講到)。

下例定義了一個過程、兩個函數,兩個函數的語法略有不同,結果是完全相同的。

procedure Hello;
begin
  ShowMessage ('Hello world!');
end;

function Double (Value: Integer) : Integer;
begin
  Double := Value * 2;
end;

// or, as an alternative
function Double2 (Value: Integer) : Integer;
begin
  Result := Value * 2;
end;
流行的做法是用Result 給函數賦返回值,而不是用函數名,我認為這樣的代碼更易讀。

一旦定義了這些例程,你就可以多次調用,其中調用過程可執(zhí)行操作;調用函數能計算返回值。如下:

procedure TForm1.Button1Click (Sender: TObject);
begin
  Hello;
end;
 
procedure TForm1.Button2Click (Sender: TObject);
var
  X, Y: Integer;
begin
  X := Double (StrToInt (Edit1.Text));
  Y := Double (X);
  ShowMessage (IntToStr (Y));
end;
注意:現在不必考慮上面兩個過程的語法,實際上它們是方法。只要把兩個按鈕(button)放到一個Delphi 窗體上,在設計階段單擊它們,Delphi IDE將產生合適的支持代碼,你只需要填上begin 和end 之間的那幾行代碼就行。編譯上面的代碼,需要你在窗體中加一個Edit控件。

現在回到我前面提到過的代碼封裝概念。當你調用Double 函數時,你不需要知道該函數的具體實現方法。如果以后發(fā)現了更好的雙倍數計算方法,你只需要改變函數的代碼,而調用函數的代碼不必改變(盡管代碼執(zhí)行速度可能會加快!)。Hello 過程也一樣,你可以通過改變這個過程的代碼,修改程序的輸出,Button2Click 方法會自動改變顯示結果。下面是改變后的代碼:

procedure Hello;
begin
  MessageDlg ('Hello world!', mtInformation, [mbOK]);
end;

提示:當調用一個現有的Delphi 函數、過程或任何VCL方法時,你應該記住參數的個數及其數據類型。不過,只要鍵入函數或過程名及左括號,Delphi 編輯器中會出現即時提示條,列出函數或過程的參數表供參考。這一特性被稱為代碼參數(Code Parameters) ,是代碼識別技術的一部分。

引用參數 
Pascal 例程的傳遞參數可以是值參也可以是引用參數。值參傳遞是缺省的參數傳遞方式:即將值參的拷貝壓入棧中,例程使用、操縱的是棧中的拷貝值,不是原始值。

當通過引用傳遞參數時,沒有按正常方式把參數值的拷貝壓棧(避免拷貝值壓棧一般能加快程序執(zhí)行速度),而是直接引用參數原始值,例程中的代碼也同樣訪問原始值,這樣就能在過程或函數中改變參數的值。引用參數用關鍵字var 標示。

參數引用技術在大多數編程語言中都有,C語言中雖沒有,但C++中引入了該技術。在C++中,用符號 &表示引用;在VB中,沒有ByVal 標示的參數都為引用。

下面是利用引用傳遞參數的例子,引用參數用var關鍵字標示:

procedure DoubleTheValue (var Value: Integer);
begin
  Value := Value * 2;
end;
在這種情況下,參數既把一個值傳遞給過程,又把新值返回給調用過程的代碼。當你執(zhí)行完以下代碼時:

var
  X: Integer;
begin
  X := 10;
  DoubleTheValue (X);
x變量的值變成了20,因為過程通過引用訪問了X的原始存儲單元,由此改變了X的初始值。

通過引用傳遞參數對有序類型、傳統(tǒng)字符串類型及大型記錄類型才有意義。實際上Delphi總是通過值來傳遞對象,因為Delphi對象本身就是引用。因此通過引用傳遞對象就沒什么意義(除了極特殊的情況),因為這樣相當于傳遞一個引用到另一個引用。

Delphi 長字符串的情況略有不同,長字符串看起來象引用,但是如果你改變了該字符串的串變量,那么這個串在更新前將被拷貝下來。作為值參被傳遞的長字符串只在內存使用和操作速度方面才象引用,但是如果你改變了字符串的值,初始值將不受影響。相反,如果通過引用傳遞長字符串,那么串的初始值就可以改變。

Delphi 3增加了一種新的參數:out。out參數沒有初始值,只是用來返回一個值。out參數應只用于COM過程和函數,一般情況下最好使用更有效的var參數。除了沒有初始值這一點之外,out參數與var參數相同。

常量參數 
除了引用參數外,還有一種參數叫常量參數。由于不允許在例程中給常量參數賦新值,因此編譯器能優(yōu)化常參的傳遞過程。編譯器會選用一種與引用參數相似的方法編譯常參(C++術語中的常量引用),但是從表面上看常參又與值參相似,因為常參初始值不受例程的影響。

事實上,如果編譯下面有點可笑的代碼,Delphi將出現錯誤:

function DoubleTheValue (const Value: Integer): Integer;
begin
  Value := Value * 2;      // compiler error
  Result := Value;
end;
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美韩国一区二区| 在线一区二区三区四区五区| 国产99久久精品| 国产午夜精品久久久久久久| 天涯成人国产亚洲精品一区av| 日本精品一区二区三区高清| 国产精品麻豆久久久| 国产99久久久国产精品| 国产日韩亚洲欧美综合| 国产精品99久久久久| 久久精品免视看| 成人免费看视频| 国产欧美一区二区精品性色 | 国产精品毛片a∨一区二区三区| 国产呦萝稀缺另类资源| 久久久久久麻豆| 成人福利电影精品一区二区在线观看 | av一区二区不卡| 中文字幕一区二区三区色视频| 国模一区二区三区白浆| 久久欧美一区二区| 岛国精品一区二区| 亚洲精品乱码久久久久久日本蜜臀| 国产精品一区专区| 中文字幕第一区二区| 欧美日韩国产综合视频在线观看| 亚洲综合久久av| 欧美日韩精品久久久| 免费视频一区二区| 欧美va日韩va| 97se亚洲国产综合自在线| 一区二区在线观看免费视频播放 | 国产午夜精品一区二区| 91在线视频网址| 日韩国产精品91| 欧美精品一区二区三区视频| 成人av综合一区| 性欧美疯狂xxxxbbbb| 欧美一卡在线观看| aaa欧美日韩| 日韩电影在线一区| 国产精品久久久久久亚洲毛片| 丰满白嫩尤物一区二区| 亚洲福利视频一区二区| 精品伦理精品一区| 色8久久人人97超碰香蕉987| 日本v片在线高清不卡在线观看| 久久久久久免费| 欧美人妇做爰xxxⅹ性高电影| 国内久久精品视频| 亚洲一区二区三区四区在线观看 | 日韩一级视频免费观看在线| 成人免费视频免费观看| 玉足女爽爽91| 久久日韩粉嫩一区二区三区| 日本韩国精品在线| 久久99久久99| 亚洲国产wwwccc36天堂| 欧美极品少妇xxxxⅹ高跟鞋| 欧美一区二区视频在线观看2020 | 亚洲卡通动漫在线| 337p日本欧洲亚洲大胆色噜噜| 国产精品白丝av| 琪琪久久久久日韩精品| 亚洲男同性恋视频| 久久久久久久久蜜桃| 欧美亚洲动漫制服丝袜| 国产69精品久久久久777| 精品一区中文字幕| 久久99久久久久| 久久se这里有精品| 国内外精品视频| 韩国成人精品a∨在线观看| 精品制服美女丁香| 精品在线一区二区三区| 国内精品国产成人国产三级粉色| 美女高潮久久久| 久热成人在线视频| 黄页视频在线91| 国产精品18久久久久久vr| 国产精品一色哟哟哟| 风间由美一区二区av101| 国产91精品一区二区麻豆亚洲| 国产不卡在线一区| 99精品一区二区三区| 色综合色狠狠综合色| 欧美日韩中文字幕一区| 538在线一区二区精品国产| 91麻豆精品国产91久久久 | 精品无人区卡一卡二卡三乱码免费卡| 日韩电影在线免费看| 麻豆精品久久精品色综合| 国产精品自在欧美一区| 成人国产一区二区三区精品| 99精品欧美一区二区三区综合在线| 一本一道久久a久久精品综合蜜臀| 91黄色免费版| 777欧美精品| 国产亚洲一区字幕| 亚洲欧洲99久久| 午夜亚洲福利老司机| 精品在线观看免费| 色诱视频网站一区| 欧美一区二区三区啪啪| 久久久精品欧美丰满| 亚洲免费观看高清完整版在线观看熊| 亚洲h精品动漫在线观看| 毛片一区二区三区| 91亚洲精品久久久蜜桃网站| 欧美日韩第一区日日骚| 久久久欧美精品sm网站 | 午夜久久久久久| 国产精品一线二线三线精华| 色综合久久综合网欧美综合网| 91精品国产入口| 国产精品看片你懂得| 同产精品九九九| 成人app下载| 欧美一区二区视频在线观看| 中文字幕一区二区三区不卡在线 | 国产美女视频91| 91农村精品一区二区在线| 欧美精品色一区二区三区| 国产人成亚洲第一网站在线播放| 亚洲最大成人综合| 国产精品影视在线| 7777精品伊人久久久大香线蕉经典版下载 | 五月天亚洲婷婷| 成人永久看片免费视频天堂| 91.xcao| 亚洲另类在线视频| 国产高清成人在线| 欧美一二区视频| 亚洲国产一区二区三区| 丁香另类激情小说| 欧美刺激午夜性久久久久久久| 亚洲你懂的在线视频| 国产成人av一区二区三区在线观看| 欧美日本在线观看| 亚洲人成在线观看一区二区| 国产九色sp调教91| 日韩欧美久久久| 香蕉成人啪国产精品视频综合网 | 97久久精品人人做人人爽| 日韩精品最新网址| 五月婷婷激情综合| 色偷偷一区二区三区| 国产精品女同互慰在线看| 久久99久久久久| 日韩欧美国产精品| 香蕉久久一区二区不卡无毒影院| 91欧美一区二区| 国产精品福利电影一区二区三区四区 | 国产麻豆视频一区| 欧美电影免费观看高清完整版在线 | 午夜电影一区二区三区| 中文字幕精品三区| 91精品在线一区二区| 91精品国产乱码久久蜜臀| 欧美理论片在线| 欧美一二三区在线| 91捆绑美女网站| 亚洲成人激情综合网| 国产三级久久久| 久久久一区二区三区捆绑**| 色av一区二区| 国产高清精品网站| 午夜精品一区二区三区三上悠亚| 久久亚洲综合av| 国产91在线观看| 亚洲午夜一区二区三区| 国产蜜臀av在线一区二区三区 | 亚洲欧美一区二区三区极速播放 | 精品一区二区三区视频在线观看| 国产精品日产欧美久久久久| 欧美日韩不卡视频| 欧美久久久久久蜜桃| 欧美激情一区二区在线| 亚洲成人免费看| 久国产精品韩国三级视频| 日本色综合中文字幕| 亚洲成人福利片| 国产精品久久一卡二卡| 日韩精品一区二区在线| 9191久久久久久久久久久| 国产不卡视频在线观看| 日韩avvvv在线播放| 亚洲日穴在线视频| 国产剧情在线观看一区二区 | 欧美丝袜丝nylons| 欧美刺激午夜性久久久久久久| 精品亚洲成a人在线观看| 26uuu色噜噜精品一区| 国产成人av电影免费在线观看| 日本一区二区三区在线不卡| 99视频一区二区| 天堂va蜜桃一区二区三区漫画版| 精品黑人一区二区三区久久| 国产成人av一区二区三区在线| 一区二区视频在线|