こんなところで許していただけるでしようか.
procedure TForm1.Button1Click(Sender: TObject);
var
LNull : string;
begin
Memo1.Lines.Clear;
LNull := #0;
if LNull = Null then begin
// 定数 Null は Variant 型なのでここは実行されない
Memo1.Lines.Add('LNull is Null');
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
LNull : OleVariant;
begin
Memo1.Lines.Clear;
LNull := Null;
if LNull = Null then begin
// これは実行される
Memo1.Lines.Add('LNull is Null');
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
LText : string;
LIndex : Integer;
LPChar : PChar;
begin
Memo1.Lines.Clear;
// Null 終端文字列 (PChar 型) の Null 文字はこの文字を意味する
// 定数名の Null とは違うので注意
LText := 'ABC' + #0 + 'XYZ';
for LIndex := 1 to Length(LText) do begin
if LText[LIndex] = #0 then begin
Memo1.Lines.Add('null');
end else begin
Memo1.Lines.Add(LText[LIndex]);
end;
end;
LPChar := PChar(LText);
Memo1.Lines.Add(LPChar);
end;
|