黃易群俠傳M脫機外掛應用程式黃易神行
1613
1

對象、屬性,繼續對象屬性

mj001415 發表於 2009-3-10 21:48:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |
學習目標

認識 瞭解delphi 7.0中的幾個常用控制項 及控制項的常用屬性,初步理解變數的作用域!初步認識代碼結構
正題
上篇回顧:
上篇中我們學習了什麼是面向物件編程語言 什麼是物件 什麼是屬性以及資料的簡單定義相信零起點的菜鳥可以作出自己的第一個程式:hello world! 了吧 ?不要覺得丟人,我的第一個程式也是這個,另外的另外,這埵n多的大大,說不定 第一個程式同樣也是它,不過內容有所區別而已!
我們今天繼續
上篇我們用到了label button、及 form(表單) 這三個物件,今天我們再瞭解兩個

edit listbox
還是和上篇一樣 打開你的 delphi 7.0


工具欄上選取edit listbox 兩個物件 然後分別畫 form 表單上 再選取 button 畫到下麵
我們現在做個程式:假設我們在超市買東西,收銀員每掃描一次物品,電腦就記錄一件物品的名稱。
那麼在電腦中重現這個過程
假設掃描這個事件的發生,導致物品名稱 外部進入電腦內部
我們建立如下模型
實現單擊 掃描 edit1 中的內容記錄到listbox1中去
細心的朋友會發現我這媯e的button上面不是顯示的button1而是 掃描
怎麼做到的?
上篇上講物件 屬性的時候物件是實體,屬性就是資料,同樣的對於button1這個物件來說它是由許多屬性資料組成的物件。這些屬性在delphi 7.0用一個屬性列表給出(物件檢查器),
現在在表單編輯中點選下button1

看屬性列表堛caption 後的那格 是掃描,你剛畫出來的應該是button1
屬性列表這行的意思就是button1caption的屬性值為button1
你現在把值 button1改為掃描看看是不是和我的一樣了?
對於button 這個控制項物件的屬性我們經常用到的就這一個
我們再來看看 edit1 的屬性

1 為當前選中的對象名稱
23 是選中物件的屬性
readonly 的屬性值 true 程式對edit1 只能讀 不能寫 反之 false 能讀能寫
text 的屬性值就時你現在看到的edit1中顯示的資料 這個屬性的資料類型為字元型
你可以嘗試更改下這個屬性值
同樣的你可以點擊看下listbox1的屬性列表

items 屬性是用來保存listbox1中顯示的字串列表
單擊1 箭頭所指的按鈕,彈出一個字串列表編輯器 你可以再這婼s輯輸入字串比如我輸入的東西
點確定 現在看表單上的listbox1中是不是有內容了?
好了下面我們編寫程式 來是剛才的想法
雙擊button1

6中游標位置
添加 如下代碼



listbox1.Items.Add(edit1.text);

好了運行你的程式 單擊掃描按鈕 是不是就把edit1添加到listbox1中去了?
解釋下
listbox1.Items.Add(edit1.text);

物件 屬性方法
方法是add
括弧“()”是指 add方法的作用是將括弧中的值 賦給物件listbox1的屬性Items
完成此節 你也許會明白外掛中 那些將怪物名稱添加到列表中去是怎麼實現的了吧?
我們再來看看變數 和變數的作用域
還是上面的例子
我們現在想知道我們到底添加了多少個物品名稱
現在添加一個label
在代碼編輯器中添加如圖代碼
就是在
剛才的listbox1.Items.Add(edit1.text);
前加一句
i:=i+1;
後加一句
label1.Caption:=inttostr(i);

全部為:
var
Form1: TForm1;
i:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
i:=i+1;
listbox1.Items.Add(edit1.text);
label1.Caption:=inttostr(i);
end;


好了運行
現在單擊 是不是添加多少個都有顯示了?
上篇中我們講了
var 是聲明記憶體變數
上篇第二個程式中我們是在

procedure TForm1.Button1Click(Sender: TObject);

下聲明
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c:integer;

這次我們在這個過程外的

unit Unit1;
編譯指令
{$R *.dfm}
之間聲明
這兩中聲明區別就是總體變數和局部變數的區別
大家可以試下
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;

i 聲明到過程底下 和將i 聲明到
unit Unit1;
編譯指令
{$R *.dfm}
之間
label 的顯示有什麼區別
變數的作用域
是指變數所能起作用的範圍,反過來也就是說什麼程式能夠看什麼變數
一般在delphi 的變數作用範圍分為3
全局可見
單元內部可見
局部可見
什麼是全局可見 什麼是單元內部可見我在下篇給大家介紹
現在先簡單說下
我們這樣定義變數

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;

意思是在 在程式的單擊滑鼠事件中定義一個局部可見的變數i

unit Unit1;
編譯指令
{$R *.dfm}
之間定義變數意思是在這個單元內定義一個在這個單元中所有過程和函數都能看到的變數
* 注:過程和函數 下篇介紹
運行程式發現
第二次 無論如何點擊掃描 label 1顯示的始終是1

這說明 i 聲明到物件掃描按鈕過程底下 做為比過程高一級的表單物件是看不到的
在上篇的文章中我說:在表單物件 form1中包含兩個小物件 button1 label1
在這 我們聲明到unit Unit1;
編譯指令
{$R *.dfm}
之間的變數是內部可見 是表單內的局部變數
聲明在過程底下的是小物件button1 內部可見的局部變數
所以小物件button1 中能識別出來的變數 並不能被 一級的FORM1 物件識別
這就是變數的作用域!
解釋完了 大家可以試下了
小結


通過本篇 我們要理解物件的屬性要掌握 delphi 7.0中常用的幾個控制項 button edit label listbox 的常用屬性 要知道這些屬性怎麼設置 知道這些屬性在代碼中如何表示!
收藏收藏 分享分享 讚 幹 分享分享 FB分享
回覆

使用道具 舉報


您需要登錄後才可以回帖 登錄 | 註冊


手機版 | Archiver | 外掛聯合國

GMT+8, 2024-11-25 11:06 , Processed in 0.048694 second(s), 16 queries , Memcache On.

版權說明:
  本站不會製作、經銷、代理外掛程式。僅免費提供外掛程式下載前之掃毒及掃木馬等安全檢測驗證,協助會員遠離盜號危險程式。本站所有資料均來自網際網路收集整理,說明文字暨下載連結轉載自原程 式開發站。站上出現之公司名稱、遊戲名稱、程式等,商標及著作權,均歸各公司及程式原創所有,本站程式所有權歸外掛聯合國所有。本程式所有權歸外掛聯合國所有.......

回頂部
第二步?
第三步?