这个问题准备连问5天
看下面这个程序,
procedure TF7_proverb.FormCreate(Sender: TObject);
var sss:Tstringlist;iii:integer;
begin
sss:=Tstringlist.Create;
try
sss.Assign(SplitString (AdoqueryA['widths'],','));
for iii:=0 to sss.Count-1 do
begin
dbgrid1.columns[iii].Width:=strtoint(sss.Strings[iii]);
end; { }
finally
sss.Free;
end;
end;
function TF7_proverb.SplitString(Source,Deli:string):TStringList;//²ð·Ö×Ö·û´®º¯Êý
var
EndOfCurrentString:byte;
StringList:TStringList;
begin
StringList:=TStringList.Create;
try
while Pos(Deli,Source)>0 do
begin
EndOfCurrentString:=Pos(Deli,Source);
StringList.add(Copy(Source,1,EndOfCurrentString-1)); //Ìí¼ÓÏîÄ¿
Source:=Copy(Source,EndOfCurrentString+length(Deli),length(Source)-EndOfCurrentString); //¼õÈ¥ÒÑÌí¼ÓÏîºÍ·Ö¸ô·û
end;
StringList.Add(source); //Èç¹û²»´æÔÚ·Ö¸ô·ûʱ£¬Ö±½Ó×÷ΪÏîÄ¿Ìí¼Ó
Result:=StringList; //ÉèÖ÷µ»ØÀàÐÍ
finally
end;
StringList.Free;
end;
运行后提示This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):
5 - 12 bytes: String x 4, Unknown x 1
45 - 52 bytes: TStringList x 1
53 - 68 bytes: Unknown x 1