📄 delphi object pascal 編譯器的編譯指令之十六.txt
字号:
Delphi Object Pascal 編譯器的編譯指令之十六({$H+} 長字串宣告)(本人會連續刊登) (2001年3月17日)
网友更新 分类:杂类 作者:erp2 推荐:erp2 阅读次数:194
(http://www.codesky.net)
--------------------------------------------------------------------------------
作者﹕黃智
郵件﹕erp2@263.net
日期﹕2001-03-17
{$H+} 長字串宣告
Delphi 2.0之後, 字串多了一個更為好用的長字串, 不僅沒有資料長度255的限制, 與C語言慣用的Null-terminated string相容性也大為提高。
使用{$H}時的注意事項有:
? {$H+}的編譯情形下, 以string定義的字串變數都是長字串, 請注意, 字串是否為長字串是在字串定義時決定的, 例如:
procedure TForm1.Button1Click(Sender: TObject);
{$H-}
var
s: string;
begin
{$H+}
s := '測試一下長字串';
Windows.MessageBox(0, pchar(s), '訊息', 64);
end;
由於var前{$H-}的緣故, 雖然在begin後我們立即設定為{$H+}, 但s仍然是一個短字串, 所以, 自然不能像是長字串一樣, 以pchar強制型別轉換後當作Null-terminated字串使用。
? 承上, 不管程式是{$H+}或{$H-}, 只要字串是以長字串方式定義的, 即使begin..end;中改成{$H-}, 該字串的操作仍然具有長字串的特性。
因此, 由於VCL中的字串都是長字串, 即使我們的程式是{$H-}, 仍然可以拿它們當長字串來使用。
? 不論{$H}的狀態如何, 以AnsiString定義的一定是長字串; 以string[n]或ShortString定義的一定是短字串。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -