7)Set類如何用?
答:嚴格來說,CB的集合(Set)並不是一個類,而是一個類模板(Class Template)。它用來實現集合這個抽象數據類型。
使用它可以定義一個實際的集合類型,它的一般聲明模式是這樣的:
typedef Set<type,minval,maxval>ClassName;
其中type用來指定集合元素的類型;minval指定集合元素的最小值;maxval指定集合元素的最大值。
舉個例子來說,若是我們定義一個以TupperSet為名的集合類,這個集合類的可能元素為26個大寫字母,我們可以這樣定義:
typedef Set<char,’A’,’Z’>TupperSet;
應用時我們可以使用這個集合類聲明一個具體的集合對象,如:
TupperSet UpperSet;
8)能不能告訴我一下Set類有哪些常見的使用方法或操作符?
答:當然可以了,以下是它的一些常見操作符和方法:
Clear方法:清除集合對象內的所有元素,使集合成為空集;
Contains方法:查詢集合中是否包含指定的元素,其聲明為:
bool _fastcall Contains(const T el)const;
operator-:兩個集合進行求差運算,結果集合包含兩個集合中不相同的元素;
operator*:求兩個集合的交集;
operator+:求兩個集合的並集;
operator<<:添加一個元素到指定集合;
operator>>:從集合中刪除一個指定元素。
其實Set類的應該比較廣泛,比如判定我們是否按下鼠標左鍵,可以用如下的語句:
if(Shift.Contains(ssLeft))。
9)聽說在CB中有一個可以定時觸發的組件,能否介紹一下它的屬性和事件嗎?
答:你說的是Timer組件,它位於組件欄的System組件頁中。使用它並不難,因為他的屬性、事件非凡少:
Enabled屬性:布爾類型。缺省時為true,這時定時器將經過一段時間就觸發OnTimer事件。在這個屬性從false變為true時,時鐘將重新開始計時。
Interval屬性:這個屬性用來設置每隔多長時間就觸發一次OnTimer事件,以毫秒為單位。缺省為1000毫秒。
OnTimer事件:這個事件在Enabled屬性設置為true時,每隔Interval屬性指定的時間觸發一次。
10)原來Timer組件如此簡單,但我還有些不懂為什麼說它是一個可找替循環語句,能否舉一個例子說明下OnTimer事件?
答:它不能取替循環語句的,當然在特定條件下,他比循環語句更有效,尤其是在涉及到按時循環時。在我編寫的春輝網絡電視裡有一段OnTimer事件代碼,可供大家參考:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
String s1="春輝(CH)軟件 作者:董維春 王巖 CH工作室";
if(i<=54)
{
Label1->Caption=s1.SubString(i,18);
i+=2;
}
else
{
i=1;
}
}
(未完待續)
更多內容請看C/C++技術專題專題,或