?? delphi object pascal 編譯器的編譯指令之十六.txt
字號(hào):
Delphi Object Pascal 編譯器的編譯指令之十六({$H+} 長(zhǎng)字串宣告)(本人會(huì)連續(xù)刊登) (2001年3月17日)
網(wǎng)友更新 分類(lèi):雜類(lèi) 作者:erp2 推薦:erp2 閱讀次數(shù):194
(http://www.codesky.net)
--------------------------------------------------------------------------------
作者﹕黃智
郵件﹕erp2@263.net
日期﹕2001-03-17
{$H+} 長(zhǎng)字串宣告
Delphi 2.0之後, 字串多了一個(gè)更為好用的長(zhǎng)字串, 不僅沒(méi)有資料長(zhǎng)度255的限制, 與C語(yǔ)言慣用的Null-terminated string相容性也大為提高。
使用{$H}時(shí)的注意事項(xiàng)有:
? {$H+}的編譯情形下, 以string定義的字串變數(shù)都是長(zhǎng)字串, 請(qǐng)注意, 字串是否為長(zhǎng)字串是在字串定義時(shí)決定的, 例如:
procedure TForm1.Button1Click(Sender: TObject);
{$H-}
var
s: string;
begin
{$H+}
s := '測(cè)試一下長(zhǎng)字串';
Windows.MessageBox(0, pchar(s), '訊息', 64);
end;
由於var前{$H-}的緣故, 雖然在begin後我們立即設(shè)定為{$H+}, 但s仍然是一個(gè)短字串, 所以, 自然不能像是長(zhǎng)字串一樣, 以pchar強(qiáng)制型別轉(zhuǎn)換後當(dāng)作Null-terminated字串使用。
? 承上, 不管程式是{$H+}或{$H-}, 只要字串是以長(zhǎng)字串方式定義的, 即使begin..end;中改成{$H-}, 該字串的操作仍然具有長(zhǎng)字串的特性。
因此, 由於VCL中的字串都是長(zhǎng)字串, 即使我們的程式是{$H-}, 仍然可以拿它們當(dāng)長(zhǎng)字串來(lái)使用。
? 不論{$H}的狀態(tài)如何, 以AnsiString定義的一定是長(zhǎng)字串; 以string[n]或ShortString定義的一定是短字串。
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -