可以编译,但运行出错。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
cb: TComboBox;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
function ss:Tstrings;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}function TForm1.ss:Tstrings;
var
sd:Tstrings;
begin
sd := Tstringlist.Create;
try
sd.Add('aa');
sd.Add('bb');
ss := sd;
finally
sd.Free;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
cb.Items.Assign(ss);
end;end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
cb: TComboBox;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
function ss:Tstrings;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}function TForm1.ss:Tstrings;
var
sd:Tstrings;
begin
sd := Tstringlist.Create;
try
sd.Add('aa');
sd.Add('bb');
ss := sd;
finally
sd.Free;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
cb.Items.Assign(ss);
end;end.
但在哪里释入资源呢?
var
sd:Tstrings;
begin
sd := Tstringlist.Create;
try
sd.Add('aa');
sd.Add('bb');
ss := TStringList.Create;
ss.Assign(sd);
finally
sd.Free;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var ss1: TStrings;
begin
ss1 := ss;
cb.Items.Assign(ss1);
ss1.Free;
end;
assign是一个样高手还有没有办法
public
function ss(Sd:TStrings):Tstrings;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}function TForm1.ss(Sd:TStrings):Tstrings;
begin
sd.Add('aa');
sd.Add('bb');
Result := sd;
end;procedure TForm1.Button1Click(Sender: TObject);
var Sd:TStrings;
begin
Sd := TStringList.Create;
Try
cb.Items := ss(Sd);
Except
Sd.Free;
End;
end;
var
sd:Tstrings;
应该是
var
sd:TstringList;
然后sd.free就没有错误了!!!
function ss:Tstrings;
var
sd:Tstrings;
begin
result;=Tstrings.create;//增加一句
sd := Tstringlist.Create;
try
sd.Add('aa');
sd.Add('bb');
ss := TStringList.Create;
result.Assign(sd);
finally
sd.Free;
end;
end;
问题出现在这里:
function ss:Tstrings;
var
sd:Tstrings;
begin
result;=Tstrings.create;//增加一句
sd := Tstringlist.Create;
try
sd.Add('aa');
sd.Add('bb');
result.Assign(sd);
finally
sd.Free;
end;
end;