buf: array[1..16] of Char;
for j := 1 to 16 do buf[j] := Chr( Random(26)+97 );
buf を
buf :string[16];
と宣言すると、意図した操作になりません。なぜですか?
「意図した操作」を説明しないと、質問として成り立たないですよー。
Delphiのバージョンもお忘れなく書いてくださいね。
聞きたいのは
//OK
procedure TForm1.Button1Click(Sender: TObject);
var
buf: array[1..16] of Char;
j:integer;
S:string;
begin
for j := 1 to 16 do buf[j] := Chr( Random(26)+97 );
S:=buf;
Memo1.Lines.Add(S);
end;
//NG
procedure TForm1.Button2Click(Sender: TObject);
var
buf :string[16];
j:integer;
S:string;
begin
for j := 1 to 16 do
begin
S:= Chr( Random(26)+97 );
buf[j]:=S[1];
end;
S:=buf;
Memo1.Lines.Add(S);
end;
//OK
procedure TForm1.Button3Click(Sender: TObject);
var
buf: string[16];
j:integer;
S:string;
begin
for j := 1 to 16 do buf[j] := Chr( Random(26)+97 );
for j := 1 to 16 do
S:=S+buf[j];
Memo1.Lines.Add(S);
end;
ってことかな?
ツイート | ![]() |