如何在一行中获取 for 循环文本?
How to get a for loops texts on one line?
我试图在一行中获取 for 循环文本,而不是在第二行、第三行、第四行等上打印。
procedure TFormQ1.Button1Click(Sender: TObject);
var
a, b, c, I: integer;
begin
a := SpinEdit1.Value;
for I := 1 to a do
begin
if a mod I = 0 then
begin
memo1.Lines.Add(inttostr(I));
end;
end;
end;
我希望输出是我在 line.strong 文本
上输入的数字的倍数
根据其名称,Lines.Add()
添加了一个新行。为避免这种情况,只需不要在每次循环迭代中使用 Lines.Add()
即可。有几种不同的方法可以将所有内容放在一行中:
for I := 1 to a do begin
...
memo1.Text := memo1.Text + IntToStr(I);
...
end;
var
...
s: string;
begin
...
for I := 1 to a do begin
...
s := s + IntToStr(I);
...
end;
memo1.Text := s; // or memo1.Lines.Add(s);
...
end;
var
...
Idx: integer;
begin
...
Idx := memo1.Lines.Add('');
for I := 1 to a do begin
...
memo1.Lines[Idx] := memo1.Lines[Idx] + IntToStr(I);
...
end;
...
end;
var
...
len: integer;
begin
...
for I := 1 to a do begin
...
{memo1.SelStart := memo1.GetTextLen;
memo1.SelLength := 0;}
len := memo1.GetTextLen;
memo1.Perform(EM_SETSEL, len, len);
memo1.SelText := IntToStr(I);
...
end;
...
end;
我试图在一行中获取 for 循环文本,而不是在第二行、第三行、第四行等上打印。
procedure TFormQ1.Button1Click(Sender: TObject);
var
a, b, c, I: integer;
begin
a := SpinEdit1.Value;
for I := 1 to a do
begin
if a mod I = 0 then
begin
memo1.Lines.Add(inttostr(I));
end;
end;
end;
我希望输出是我在 line.strong 文本
上输入的数字的倍数根据其名称,Lines.Add()
添加了一个新行。为避免这种情况,只需不要在每次循环迭代中使用 Lines.Add()
即可。有几种不同的方法可以将所有内容放在一行中:
for I := 1 to a do begin
...
memo1.Text := memo1.Text + IntToStr(I);
...
end;
var
...
s: string;
begin
...
for I := 1 to a do begin
...
s := s + IntToStr(I);
...
end;
memo1.Text := s; // or memo1.Lines.Add(s);
...
end;
var
...
Idx: integer;
begin
...
Idx := memo1.Lines.Add('');
for I := 1 to a do begin
...
memo1.Lines[Idx] := memo1.Lines[Idx] + IntToStr(I);
...
end;
...
end;
var
...
len: integer;
begin
...
for I := 1 to a do begin
...
{memo1.SelStart := memo1.GetTextLen;
memo1.SelLength := 0;}
len := memo1.GetTextLen;
memo1.Perform(EM_SETSEL, len, len);
memo1.SelText := IntToStr(I);
...
end;
...
end;