unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure getn(ss, ss1: string; count: Integer; var str: TStrings);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2:string;
str,str1:TStrings;
i,j,m,n:Integer;
begin
s1:=Trim(self.Edit1.Text);//这里就是你的字符串‘4,6,8,12,16,17,20,28,29,30,31’
s2:=Trim(self.Edit2.Text);//这里输入8
if (s1='') or (s2='') then
Exit;
str:=TStringList.Create;
str.Clear;
str1:=TStringList.Create;
str1.Clear;
self.getn(s1,'',StrToInt(s2),str);
i:=str.Count;
self.Memo1.Lines.Clear;
for j:=0 to i-1 do
begin
s1:=str.Strings[j];
self.Memo1.Lines.Add(s1);
end;
end;procedure TForm1.getn(ss, ss1: string; count: Integer; var str: TStrings);
var
i,j,m,n:Integer;
s,s1,s2,s3:string;
str1,str2:TStrings;
begin
str1:=TStringList.Create;
str1.Clear;
str2:=TStringList.Create;
str2.Clear;
ExtractStrings([','],[],PChar(ss),str1);
i:=str1.Count;
if i=0 then
Exit;
for j:=1 to i do
begin
s1:=str1.Strings[j-1];
if ss1='' then
s3:=ss1+s1
else
s3:=ss1+'-'+s1;
str2.Clear;
ExtractStrings(['-'],[],PChar(s3),str2);
if str2.Count=count then
begin
str.Add(s3);
Continue;
end;
s2:='';
for n:=j to i-1 do
s2:=s2+str1.Strings[n]+',';
Self.getn(s2,s3,count,str);
end;
end;end.=====================================以上代码能否把Memo1内容横向显示??它当前显示模式如:
1234;
1235;
1236;
1237;
1238;
...希望实现效果如下:
1234; 1235; 1236; 1237; 1238; ...
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure getn(ss, ss1: string; count: Integer; var str: TStrings);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
s1,s2:string;
str,str1:TStrings;
i,j,m,n:Integer;
begin
s1:=Trim(self.Edit1.Text);//这里就是你的字符串‘4,6,8,12,16,17,20,28,29,30,31’
s2:=Trim(self.Edit2.Text);//这里输入8
if (s1='') or (s2='') then
Exit;
str:=TStringList.Create;
str.Clear;
str1:=TStringList.Create;
str1.Clear;
self.getn(s1,'',StrToInt(s2),str);
i:=str.Count;
self.Memo1.Lines.Clear;
for j:=0 to i-1 do
begin
s1:=str.Strings[j];
self.Memo1.Lines.Add(s1);
end;
end;procedure TForm1.getn(ss, ss1: string; count: Integer; var str: TStrings);
var
i,j,m,n:Integer;
s,s1,s2,s3:string;
str1,str2:TStrings;
begin
str1:=TStringList.Create;
str1.Clear;
str2:=TStringList.Create;
str2.Clear;
ExtractStrings([','],[],PChar(ss),str1);
i:=str1.Count;
if i=0 then
Exit;
for j:=1 to i do
begin
s1:=str1.Strings[j-1];
if ss1='' then
s3:=ss1+s1
else
s3:=ss1+'-'+s1;
str2.Clear;
ExtractStrings(['-'],[],PChar(s3),str2);
if str2.Count=count then
begin
str.Add(s3);
Continue;
end;
s2:='';
for n:=j to i-1 do
s2:=s2+str1.Strings[n]+',';
Self.getn(s2,s3,count,str);
end;
end;end.=====================================以上代码能否把Memo1内容横向显示??它当前显示模式如:
1234;
1235;
1236;
1237;
1238;
...希望实现效果如下:
1234; 1235; 1236; 1237; 1238; ...
解决方案 »
- 求救,怎么在SQL数据库"字段"中追加数据,但不覆盖原有数据!
- 问大家关于组件颜色的问题
- 将窗体提至最前端
- 400分问2个cxgrid的小问题,比较急
- 关于三层结构的问题(很郁闷)(悬赏50分)
- 这个问题纠缠了很久了,郁闷ing。。。
- 我要做一个程序,其中一些功能只允许 Windows 2000 的系统管理员才能运行,该怎么做?
- 如何编写一个项目进度文档?请大家各抒己见!
- Delphi XE5 使用TSearchRec,FindFirst,FindNext 遍历目录后无法删除目录
- 为什麽有时install Packages后会提示,原码已修改是否保存?版本没有转换!
- 该放什么值调用它?
- delphi到底用来干什么的啊?
for mIndex :=0 to Memo1.lines.count-1 do
begin
Text1.text := text1.text+Momo1.lines[mIndex];
end;