如何让Delphi中for循环的输出文本显示在同一行?
解决Delphi Memo循环输出同一行的问题
嘿,我懂你想要的效果啦!你现在的代码每次调用memo1.Lines.Add(IntToStr(I)),这个方法会给Memo的行列表新增一条记录,所以每个结果都会自动换行。要把所有结果放在同一行,咱们换个思路就能搞定:先把所有要显示的内容拼接成一个完整字符串,最后一次性加到Memo里。
修改后的代码
procedure TFormQ1.Button1Click(Sender: TObject); var a, I: integer; resultStr: string; begin a := SpinEdit1.Value; resultStr := ''; // 初始化空字符串存储结果 for I := 1 to a do begin if a mod I = 0 then begin // 非第一个结果时,先加分隔符(逗号+空格让输出更美观) if resultStr <> '' then resultStr := resultStr + ', '; // 将当前找到的数拼接到结果字符串中 resultStr := resultStr + IntToStr(I); end; end; // 最后把完整字符串添加到Memo,实现单行显示 memo1.Lines.Add(resultStr); end;
额外小提示
顺便提一句:你当前代码的逻辑是找输入数字的因数(能整除它的数),如果你真的想输出它的倍数(比如输入5,要显示5、10、15...这类数),那循环逻辑得调整,示例如下:
// 示例:输出输入数字的前10个倍数 resultStr := ''; for I := 1 to 10 do begin if resultStr <> '' then resultStr := resultStr + ', '; resultStr := resultStr + IntToStr(a * I); end;
内容的提问来源于stack exchange,提问作者Asrel
相关产品推荐
相关产品推荐

