| 導購 | 订阅 | 在线投稿
分享
 
 
 

TValueListEditor 控件使用方法

來源:互聯網網民  2006-01-31 22:49:10  評論

TValueListEditor 控件使用方法

CST 2005-07-19

1 文檔目的

1.1 寫作目的

本文簡單介紹了TvalueListEditor控件的基本使用方法。可以使用該控件實現類似DELPHI中OBJECT INSPECTOR的功能。

1.2 備注

下文所有vle爲一個TvalueListEditor對象。

2 簡單操作

操作

代碼

添加個屬性編輯

InsertRow(Field,Value,Append);

刪除一個屬性

DeleteRow(RowIndex);

統計屬性個數

RowCount;

獲得激活的屬性INDEX

Row

定位

根據KEYSTR定位,找到後的位置保存在INDEX中

FindRow(KeyStr,Index);

獲得KEY的內容字符串

skey:=vle.Keys[vle.row];

修改/獲得VALUE的內容字符串

vle.Values[key]:=txtvalue.Text;

屬性值只讀

Vle.ItemProp[I].ReadOnly:=True;

3 數據綁定形式

3.1 數據存儲格式

TvalueListEditor的數據實體是保存在TvalueListEditor對象的Strings成員中,Strings成員是一個Tstring類型對象,通常以TstringList實現。

在TstringList中每個string必須以如下形式存儲:

KeyStr=ValueStr

如果等號沒有找到,整個string會被作爲Value處理,此時Key爲空。

修改GRID內容後,會影響到STRINGS的數據。

3.2 導入導出

TSTRING對象可以將數據導出,函數爲:

SaveToFile和LoadFromFile

4 編輯樣式設置

4.1 KEY字段的樣式

KEY字段(屬性名稱)是4種顯示樣式的組合。

樣式

介紹

KeyEdit

KEY列的內容也可以由用戶修改

KeyAdd

用戶可以添加一個屬性

按INS鍵或者在最後條按DOWN

必須和KEYEDIT配合使用

KeyDelete

用戶可以刪除一個屬性

按DEL鍵(未實現)

KeyUnique

禁止創建重複KEY的屬性

vle.KeyOptions:=[keyUnique, keyEdit, keyAdd] ;

建議使用keyUnique樣式,禁止創建重名的屬性,便于根據KEY定位到值。

當創建重名屬性時會raise一個Exception。

4.2 項目編輯方式

ItemProps.EditStyle屬性決定了編輯的樣式:普通,下拉列表,彈出窗口。

esSimple, esEllipsis, esPickList

4.2.1 下拉列表

先設置某項的ItemProps爲esPickList,然後將一個TstringList對象賦值給ItemProps的PickList成員。該StringList將成爲下拉列表中的選項內容。

ItemProps[I].EditStype:=esPickList;

ItemProps[i].PickList:=TStringList_Object;

其中參數I可以是KEY(STR)也可以是INDEX(INTEGER)。

4.2.2 普通編輯方式

使用Input Mask

ItemProps[I].EditStype:=esSimple;

ItemProps[i].Mask:=StrMaskCharacters;

MASK串的相應功能可以參考HELP。

4.2.3 使用彈出編輯器

ItemProps[i].EditStyle:=esEllipsis;

用戶按下[…]按鈕後會觸發TvalueListEditor的OnEditButtonClick事件。我們可以在此前的OnClick時間中記錄選中的行號:

strGlobalSelKey:=vle.Key(vle.Row);

在事件OnEditButtonClick 中判斷要打開的編輯窗口。爲VLE.STRING每個STRING維護一個TSTRINGLIST,記錄編輯樣式和彈出窗口ID。

1. 根據SWITCH判斷要打開的編輯窗口

2. 將激活的KEY傳遞給編輯窗口

3. 編輯窗口完成編輯後將VLE.VALUE(KEY):=EditValue;保存返回。

(in FormMain Unit)

......

with FormEdit do

begin

key:=FormMain.skey;

Caption:='edit: '+skey ;

ShowModal ;

end;

......

(in FormEditing Unit)

......

formmain.vle.Values[key]:=txtvalue.Text;

self.Close;

......

5 可能會需要用到的一些類型轉換函數

l StrToBool

l StrToDate/StrToDateTime

l StrToFloat

l StrToIntDef

6 小結

本文參考的DELPHI 6的幫助文檔,並簡單描述了TVALUELISTEDITOR的使用方法,研究此控件是爲了在一個DELPHI項目中實現自定義控件的動態編輯。只要對該控件進行一層封裝就可以被自定義的組件所調用。沒有實現的功能爲DELPHI中可以展開的項目。

可以到我的YAHOO公文包下載本文檔的示例。
http://cn.briefcase.yahoo.com/iamcst

歡迎也很感謝大家給我提出寶貴意見。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
TValueListEditor 控件使用方法 CST 2005-07-19 1 文檔目的 1.1 寫作目的 本文簡單介紹了TvalueListEditor控件的基本使用方法。可以使用該控件實現類似DELPHI中OBJECT INSPECTOR的功能。 1.2 備注 下文所有vle爲一個TvalueListEditor對象。 2 簡單操作 操作 代碼 添加個屬性編輯 InsertRow(Field,Value,Append); 刪除一個屬性 DeleteRow(RowIndex); 統計屬性個數 RowCount; 獲得激活的屬性INDEX Row 定位 根據KEYSTR定位,找到後的位置保存在INDEX中 FindRow(KeyStr,Index); 獲得KEY的內容字符串 skey:=vle.Keys[vle.row]; 修改/獲得VALUE的內容字符串 vle.Values[key]:=txtvalue.Text; 屬性值只讀 Vle.ItemProp[I].ReadOnly:=True; 3 數據綁定形式 3.1 數據存儲格式 TvalueListEditor的數據實體是保存在TvalueListEditor對象的Strings成員中,Strings成員是一個Tstring類型對象,通常以TstringList實現。 在TstringList中每個string必須以如下形式存儲: KeyStr=ValueStr 如果等號沒有找到,整個string會被作爲Value處理,此時Key爲空。 修改GRID內容後,會影響到STRINGS的數據。 3.2 導入導出 TSTRING對象可以將數據導出,函數爲: SaveToFile和LoadFromFile 4 編輯樣式設置 4.1 KEY字段的樣式 KEY字段(屬性名稱)是4種顯示樣式的組合。 樣式 介紹 KeyEdit KEY列的內容也可以由用戶修改 KeyAdd 用戶可以添加一個屬性 按INS鍵或者在最後條按DOWN 必須和KEYEDIT配合使用 KeyDelete 用戶可以刪除一個屬性 按DEL鍵(未實現) KeyUnique 禁止創建重複KEY的屬性 vle.KeyOptions:=[keyUnique, keyEdit, keyAdd] ; 建議使用keyUnique樣式,禁止創建重名的屬性,便于根據KEY定位到值。 當創建重名屬性時會raise一個Exception。 4.2 項目編輯方式 ItemProps.EditStyle屬性決定了編輯的樣式:普通,下拉列表,彈出窗口。 esSimple, esEllipsis, esPickList 4.2.1 下拉列表 先設置某項的ItemProps爲esPickList,然後將一個TstringList對象賦值給ItemProps的PickList成員。該StringList將成爲下拉列表中的選項內容。 ItemProps[I].EditStype:=esPickList; ItemProps[i].PickList:=TStringList_Object; 其中參數I可以是KEY(STR)也可以是INDEX(INTEGER)。 4.2.2 普通編輯方式 使用Input Mask ItemProps[I].EditStype:=esSimple; ItemProps[i].Mask:=StrMaskCharacters; MASK串的相應功能可以參考HELP。 4.2.3 使用彈出編輯器 ItemProps[i].EditStyle:=esEllipsis; 用戶按下[…]按鈕後會觸發TvalueListEditor的OnEditButtonClick事件。我們可以在此前的OnClick時間中記錄選中的行號: strGlobalSelKey:=vle.Key(vle.Row); 在事件OnEditButtonClick 中判斷要打開的編輯窗口。爲VLE.STRING每個STRING維護一個TSTRINGLIST,記錄編輯樣式和彈出窗口ID。 1. 根據SWITCH判斷要打開的編輯窗口 2. 將激活的KEY傳遞給編輯窗口 3. 編輯窗口完成編輯後將VLE.VALUE(KEY):=EditValue;保存返回。 (in FormMain Unit) ...... with FormEdit do begin key:=FormMain.skey; Caption:='edit: '+skey ; ShowModal ; end; ...... (in FormEditing Unit) ...... formmain.vle.Values[key]:=txtvalue.Text; self.Close; ...... 5 可能會需要用到的一些類型轉換函數 l StrToBool l StrToDate/StrToDateTime l StrToFloat l StrToIntDef 6 小結 本文參考的DELPHI 6的幫助文檔,並簡單描述了TVALUELISTEDITOR的使用方法,研究此控件是爲了在一個DELPHI項目中實現自定義控件的動態編輯。只要對該控件進行一層封裝就可以被自定義的組件所調用。沒有實現的功能爲DELPHI中可以展開的項目。 可以到我的YAHOO公文包下載本文檔的示例。 [url=http://cn.briefcase.yahoo.com/iamcst]http://cn.briefcase.yahoo.com/iamcst[/url] 歡迎也很感謝大家給我提出寶貴意見。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有