3.1.4 往字符串列表中加入對象
字符串列表除了能在Strings屬性中貯存字符串外,還可以在Objects屬性中貯存對象。與Stings一樣,Objects也是可以索引的,它是對象的索引。
在應用程序使用列表中的字符串與列表中是否有對象沒有多大關系。除非程序特地訪問對象,否則Objects中的內容不變,Delphi只是保存了這些信息,應用程序在必要時對其進行操作。
有些字符串列表忽略加入的對象。如TMemo部件中代表行的列表對加入其中的對象不保存。還有一些字符串列表,把對象與字符串聯系起來,如TNotebook部件的Pages屬性,它同時保存著頁的名字和代表頁的對象。如果應用程序往Pages中加入或刪除字符串,Delphi自動的加入或刪除與之相應的對象。
雖然程序可分配任何類型的對象到列表中,但最常用的是在自畫式控制中把位圖與字符串聯系起來,注意位圖與字符串成對使用。
Delphi在釋放對象的內存空間時並不破壞與之相應的字符串。
3.1.4.1 操作字符串列表中的對象
對於字符串的每一種操作方法,列表中的對象均有相應的方法。例如,應用程序可利用對象的索引來訪問對象。與字符串不同的是,不能省略Objects,因為Strings才是列表的缺省屬性。
表3.1中總結了字符串對字符串和對象操作的方法。
表3.1 TStrings的字符串屬性和對象操作屬性的方法
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
操 作 字 符 串 對 象
───────────────────────────────
訪 問 Strings屬性 Objects屬性
加入項目 Add 方法 AddObjects方法
插入項目 Insert方法 InsertObjects方法
項目定位 Indexof方法 IndexofObject方法
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Delete,Clear,More操作整個項目,即刪除字符串時把相應的對象也刪除了。但LoadFromFile,SaveToFile方法只對字符串進行操作。
3.1.4.2 加入對象
如果把對象與已存在的字符串聯系起來,Delphi