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

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

?? 在delphi中巧改窗體文件實現控件數組化 (2000年12.txt

?? 自己對DELPHI學習的一點體會
?? TXT
字號:
在Delphi中巧改窗體文件實現控件數組化 (2000年12月28日) 

網友更新  分類:數據庫   作者:尚望   推薦:tommcat   閱讀次數:373  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
大唐電信光通信分公司 
尚望 
---- delphi 開發的應用中,每一個窗體都有一個對應的窗體文件(.dfm),用來記錄該窗體的屬性以及窗體上所有控件的屬性,以便在窗體關閉后能準確地重新生成窗體。幾乎所有的DELPHI參考書都沒有提到過該文件的具體情況,偶爾提到,也都泛泛而談,因為窗體文件是二進制文件,只有在DELPHI提供的編輯環境中才能看到它的本來面目,對其進行操作可能會出現不可預知的錯誤;而且在大多數情況下,確實沒有修改的必要。而本文談到的和窗體文件密切相關。 

---- 要利用窗體文件,首先必須了解該類型文件的結構。窗體文件的結構很簡單,朋友們可以生成一個窗體,隨便放上一些控件,存盤后打開Unit1.dfm文件,就可以看到窗體文件是由關鍵字"object"和"end"構成的代碼段,基本結構如下: 

object 控件名 :類名
屬性1 =屬性值
屬性2 =屬性值
end
---- 并且支持嵌套。Delphi在記錄控件屬性時,只記錄修改過的屬性,舉一個例子,比如對一個標簽控件(label1)的缺省描述如下: 
object Label1: TLabel
Left = 256
Top = 80
Width = 32
Height = 13
Caption = 'Label1'
End
---- 記錄的五個屬性都是隨開發者拖放的位置和順序不同而變化的,其它屬性由于沒有修改過,都是缺省值,所以不必記錄。 
---- 窗體文件是有序的,它的有序性表現如下: 

object 窗體名:Tform
窗體屬性1=屬性值
窗體屬性2=屬性值
。。。 。。。
// 以下是TgraphControl類型的控件
object 控件名:類名
控件屬性1=屬性值
控件屬性2=屬性值
。。。 。。。
end
object 控件名:類名
控件屬性1=屬性值
控件屬性2=屬性值
。。。 。。。
end
。。。 。。。
// 以下是TwinControl類型的控件
object 控件名:類名
控件屬性1=屬性值
控件屬性2=屬性值
。。。 。。。
end
object 控件名:類名
控件屬性1=屬性值
控件屬性2=屬性值
。。。 。。。
end
。。。 。。。
// 以下是其它類型的控件
object 控件名:類名
控件屬性1=屬性值
控件屬性2=屬性值
。。。 。。。
end
。。。 。。。
end
---- 在同一種類型的控件中,各控件排列的先后順序和它被拖放到窗體上的先后順序相同。這個順序是可以人為修改的,我們正是通過修改這個順序,來實現控件的數組化。下面將詳細介紹。 
---- 熟悉VB的朋友肯定知道在VB中可以通過控件拷貝實現控件的數組化。而DELPHI中則沒有這種功能。Delphi中可以使用Components, Controls兩個控件數組在一定程度上模擬控件的數組化,比如: 

for I := 1 to ControlCount-1 do
if (Controls[I] is Tlabel) then 
(Controls[I] as Tlabel).Caption := 'Test';
---- 這段代碼的功能是將窗體上所有Label的Caption屬性設為'Test';這是一種非常有用的方法,大家如果不太熟悉可以參考delphi幫助作進一步了解。這種方法有很多局限,最明顯的是我們并不知道Controls[i]或Components[i]到底代表哪一個控件,只能用遍歷的方法進行篩選,這不僅影響了程序執行的效率,也帶來編程上的繁瑣。 
---- 其實,Controls和Components中控件的排列順序和對應的窗體文件(.dfm)中控件描述代碼段的排列順序是相同的。前面我們談到窗體文件是可以進行適當修改的,也就是說,我們可以根據需要調整窗體文件中控件描述代碼段的排列順序,讓Controls和Components這兩個控件數組全在掌握之中,這樣我們就能清楚知道Controls[I]或Components[I]具體代表的是哪一個控件。下面舉例說明。 

---- 比如,我們想讓窗體Form1上的所有Tbutton灰化,最簡單的方法是一句一句的編寫代碼: 

Button1.Enabled := False;
Button2.Enabled := False;
… …
---- 如果Tbutton數量很多,代碼就變得很冗長。于是我們采用一個循環來實現: 
for I := 0 to ControlCount -1 do
if Controls[I] is Tbutton Then
(Controls[I] as Tbutton).Enabled := False;
---- 現在我們有了更有效的方法,首先打開窗體文件(Form1.dfm),調整Tbutton的排列順序,讓所有Tbutton的代碼段(Object…end)都排在一起,然后數一下前面其它控件代碼段的個數,設為n,n-1就是第一個Button在Controls(Components)數組中的位置,這樣程序就很簡單: 
for I:= n-1 to n-1+ButtonNum do 
(Controls[I] as Tbutton).Enabled := False;
---- 代碼的效率和簡潔比以前有了很大提高。其中ButtonNum是Button的個數。 
---- 下一個例子更能體現利用這一規律的優越性。在編寫Socket通信程序的時候,我們通常需要將用戶輸入的信息按照一定的順序形成字符串,然后發送給服務器,服務器再根據事先約定的順序解包,提取出內容,進行入庫或其它操作。在形成字符串時,一般都是直接寫代碼,比如: 

InfoS := '';//用于存放字符串。
if Edit1.Text < > '' then InfoS := InfoS + Edit1.Text
else begin
Application.Message('請填寫必要信息');
Exit;
end;
if Edit2.Text < > '' then InfoS := InfoS + Edit2.Text
else begin
Application.Message('請填寫必要信息');
Exit;
end;
……
---- 如果錄入的項目多,這種方法會使代碼冗長不堪。現在我們可以先調整窗體文件中Edit框描述代碼段的順序,讓它們排列在一起,并確定第一個Edit框在Controls控件數組中的位置(方法入前),設為n-1(其中n表示排在Edit框前面的控件的描述代碼段個數),編寫如下代碼實現: 
for I := n-1 to n-1+EditNum do
if ((Controls[I] as TEdit).Text < > '') then
InfoS := InfoS + (Controls[I] as Tedit).Text
Else begin
Application.Message('請填寫必要信息');
Exit;
End;
其中EditNum表示Edit框的個數。
---- 還有其它很多方面的應用,在這里就不一一贅述了。這實際上就是徹底實現了控件的數組化,而且這個數組還可以包含不同類型的控件。 
---- 這里有兩個問題需要注意:一是在調整控件描述代碼段順序時,一定要遵照文中提到的窗體文件的有序性規則,比如試圖將一個TButton控件的描述代碼放在一個TLabel控件的描述代碼前面是不可能的;另外請大家注意Controls和Components的區別,窗體文件中,控件間的父子關系可以通過縮進的格式很明顯的看出來,在計算控件在數組中的位置時,一定要考慮控件間的層次關系,如果使用Controls,就應該只對同級控件進行計數,如果是Components,則應包括所有的控件。 

---- 當然,這種方法也有它的弊端,首先需要調整窗體文件順序,其次程序的可讀性會受到影響,所以大家在使用這種方法時應多寫幫助。 
 
 


--------------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu成人网一区二区三区| 国产一区二区91| 色欧美片视频在线观看在线视频| 国产欧美一区二区精品久导航| 国产白丝网站精品污在线入口| 欧美国产成人在线| 91麻豆免费看片| 亚洲一区二区三区四区五区黄 | 日韩一区二区免费高清| 日本一不卡视频| 久久久久久久久免费| 成人黄色免费短视频| 一区二区三区四区精品在线视频 | 五月天精品一区二区三区| 欧美日韩激情一区| 久久99国产精品成人| 国产精品少妇自拍| 欧美手机在线视频| 韩国一区二区在线观看| 国产精品不卡一区| 欧美疯狂性受xxxxx喷水图片| 国内精品嫩模私拍在线| 亚洲三级在线看| 欧美一区二区福利视频| 成人黄页在线观看| 日韩精品91亚洲二区在线观看| 久久精品人人做人人综合| 色综合视频一区二区三区高清| 日本不卡一区二区三区高清视频| 久久精品一二三| 欧美在线免费观看亚洲| 久久99精品网久久| 一区二区三区在线影院| 久久人人爽爽爽人久久久| 91黄视频在线观看| 国产精品一二一区| 爽好久久久欧美精品| 国产精品久99| 日韩精品一区二区三区视频 | 亚洲精品欧美二区三区中文字幕| 欧美一区二区三区视频在线| av在线免费不卡| 久久机这里只有精品| 亚洲精品综合在线| 2024国产精品| 欧美日韩成人在线| 成人av在线一区二区| 九一久久久久久| 午夜精品久久久久久久蜜桃app| 国产精品久久久久永久免费观看| 日韩欧美中文字幕精品| 欧美天堂亚洲电影院在线播放| 国产91高潮流白浆在线麻豆 | 99re这里只有精品首页| 久久精品国产成人一区二区三区| 亚洲最大色网站| 中文字幕一区日韩精品欧美| 欧美xxxx老人做受| 欧美一区二区三区四区五区| 欧美日韩在线精品一区二区三区激情| 成人在线视频一区二区| 国产一区二区在线观看视频| 日本午夜精品一区二区三区电影| 亚洲一区在线观看视频| 亚洲美女视频一区| 国产精品人人做人人爽人人添| 久久综合九色综合久久久精品综合 | 欧美一区二区视频在线观看2020 | 国产高清精品在线| 极品美女销魂一区二区三区免费| 日韩高清不卡在线| 亚洲成人免费视| 亚洲成人av资源| 亚洲综合一区二区三区| 亚洲精品免费在线播放| 一区二区久久久| 亚洲综合在线观看视频| 亚洲一区二区三区四区的| 亚洲综合一二区| 亚洲一级电影视频| 婷婷成人综合网| 奇米精品一区二区三区在线观看一| 午夜激情久久久| 一区二区三区中文在线| ●精品国产综合乱码久久久久| 欧美国产精品一区| 国产精品久久久久久亚洲毛片| 日本一区二区动态图| 国产精品久久777777| 亚洲欧美福利一区二区| 亚洲一二三区不卡| 日韩电影免费一区| 久久99精品久久久久久国产越南 | 午夜电影一区二区| 日本视频免费一区| 国产在线视频一区二区三区| 国产成人av资源| 99久久99久久精品免费观看| 欧美自拍丝袜亚洲| 欧美一区日韩一区| 国产亚洲一二三区| 亚洲视频小说图片| 天堂久久一区二区三区| 国产一区二区不卡| 一本大道久久a久久精二百| 欧美日韩国产精选| 久久久美女毛片| 亚洲欧美日韩一区| 日韩电影在线观看一区| 国产精品99久久不卡二区| 91麻豆免费看片| 欧美一级日韩一级| 国产精品久久久久影院色老大 | av色综合久久天堂av综合| 欧美午夜精品久久久久久超碰| 欧美一级电影网站| 国产精品伦理在线| 日韩电影免费一区| 成人午夜免费电影| 正在播放亚洲一区| 综合久久一区二区三区| 免费在线成人网| 91美女蜜桃在线| 亚洲精品一区二区精华| 亚洲自拍偷拍麻豆| 成人激情免费视频| 欧美一级xxx| 亚洲精品日日夜夜| 国产激情91久久精品导航| 欧美日韩精品一区二区天天拍小说 | 日韩成人免费看| 本田岬高潮一区二区三区| 成人免费视频一区| av中文字幕亚洲| 91精品国产综合久久福利| 国产精品色婷婷| 日韩和欧美的一区| 91行情网站电视在线观看高清版| 欧美日韩亚洲不卡| 国产精品久久久久久久久搜平片| 日本不卡视频一二三区| 色8久久人人97超碰香蕉987| 国产日韩欧美综合一区| 美日韩一区二区| 欧美网站大全在线观看| 国产精品久久久久久户外露出| 国内精品免费在线观看| 91精品国产综合久久精品app | 精品国产伦一区二区三区免费| 亚洲一线二线三线久久久| 成人国产精品免费网站| 久久久国际精品| 激情综合网av| 欧美videossexotv100| 日精品一区二区| 欧美日韩一区二区不卡| 亚洲精品国产高清久久伦理二区| 久久久国产精品麻豆| 亚洲天堂av一区| 国产suv精品一区二区6| 精品久久久久久久久久久久久久久久久| 亚洲一区二区3| 欧美体内she精高潮| 亚洲国产视频一区二区| 欧美午夜理伦三级在线观看| 一区二区三国产精华液| 欧美亚洲一区二区在线观看| 亚洲免费观看高清在线观看| 91热门视频在线观看| 亚洲乱码中文字幕| 91免费版pro下载短视频| jlzzjlzz亚洲日本少妇| 国产精品欧美一区喷水| 成人激情图片网| 亚洲欧美日本韩国| 成人免费视频app| 国产欧美一区二区三区在线看蜜臀 | 日本aⅴ亚洲精品中文乱码| 欧美日韩电影在线| 日韩av一区二区三区四区| 日韩视频在线一区二区| 极品少妇xxxx精品少妇偷拍| 国产亚洲欧美在线| 丁香婷婷综合五月| 成人高清免费观看| 久久久久久麻豆| 国产传媒一区在线| 最新热久久免费视频| 91浏览器打开| 五月开心婷婷久久| 精品国产一区二区精华| 成人综合在线网站| 亚洲激情网站免费观看| 欧美高清性hdvideosex| 韩国女主播成人在线观看| 国产精品欧美极品| 欧美性猛片aaaaaaa做受| 精品影院一区二区久久久| 国产精品看片你懂得| 欧美色图一区二区三区|