お世話になります。
(環境:DELPHI6 Personal、XP Pro)
とんでもない勘違いをしているような気もするのですが、なぜだか解らないので質問させてください。
新規フォームにエディットボックスを2つ、ラベルを1つ、ボタンを1つ置いて
ボタンのOnClickに下記のコードを書きます。
(テストなのでとりあえず、エラーチェックも何もなしですが)
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := Copy(Edit1.Text, StrToIntDef(Edit2.Text, 0), 1);
end;
例えば、Edit1に'ABCDE'と入れて、Edit2に'0'と入れて、ボタンを押すと
Labelに'A'と表示されます。
次にEdit2に'1'と入れても、なぜか'A'と表示されます。
'2'を入れれば'B'が表示されます。
元々このような仕様ではないと思うのですが、原因がさっぱりわかりません。
どなたかお分かりになる方、教えてください。
よろしくお願いいたします。
文字列ポインタは1からですよー。
0入れちゃだめです。
>もにゃさん
なっ!なんですって!
あー、馬鹿ですね、私。
でも、'0'でも表示されるのは何故なんだろう。
てっきり「範囲エラー」みたいなのが出ると思ってました。
ともかく、ありがとうございました。
ツイート | ![]() |