因为你的code 是一个局部变量,在下一个procedure是访问不到的
var
cl : TStringlist;// 用stringlist
procedure SetNation(cmbNation: TComboBox;const FileName: string);
var
NationRec: TNationRec;
DataFile: file of TNationRec;
Code, NName: string;
begin
if cl<>nil then cl.Free;
cl:=TStringList.Create;
cmbNation.Items.Clear;
if FileExists(FileName) then
begin
AssignFile(DataFile,FileName);
Reset(DataFile);
try
while not Eof(DataFile) do
begin
Read(DataFile,NationRec);
NName := NationRec.NationName;
cl.add(NationRec.NationCode);
cmbNation.Items.Add(NName);
end;
finally
CloseFile(DataFile);
end;
end
else Application.MessageBox(Pchar('没找到设置文件'+ FileName),'错误',MB_OK);
end;
procedure TFrom1.Button1Click(Sender: TObject);
var
s: string;
begin
s:=cl[cmbNation.ItemIndex];
showmessage(s);
end;这样就可以了
var
cl : TStringlist;// 用stringlist
procedure SetNation(cmbNation: TComboBox;const FileName: string);
var
NationRec: TNationRec;
DataFile: file of TNationRec;
Code, NName: string;
begin
if cl<>nil then cl.Free;
cl:=TStringList.Create;
cmbNation.Items.Clear;
if FileExists(FileName) then
begin
AssignFile(DataFile,FileName);
Reset(DataFile);
try
while not Eof(DataFile) do
begin
Read(DataFile,NationRec);
NName := NationRec.NationName;
cl.add(NationRec.NationCode);
cmbNation.Items.Add(NName);
end;
finally
CloseFile(DataFile);
end;
end
else Application.MessageBox(Pchar('没找到设置文件'+ FileName),'错误',MB_OK);
end;
procedure TFrom1.Button1Click(Sender: TObject);
var
s: string;
begin
s:=cl[cmbNation.ItemIndex];
showmessage(s);
end;这样就可以了
解决方案 »
- WinHttp.WinHttpRequest获取中文乱码
- 用Help & Manual的朋友请进
- 请教!
- 我用Delphi做的程序运行在服务器上,远程连接注销后这个程序就被注销了.如何才能不被注销???
- 求一SQL语句(有些难度)
- 我開發了一個程式,客戶端的版本是,1.0.0.0,報務器的版本是:1.0.0.1,在程式裡我怎樣進行版本比較?
- 请问一个 画折线的问题!!谢谢啦!!
- BDE字符集的问题。
- 关于 DELPHI 问题 继续学有前途吗? 信任提问
- 用SetupBuilder做安装程序的时候,怎么在安装过程中加载其他可执行程序?
- 在 win2000下,为什么我用movefileex()或movefile()把一个目录下的文件移动到另一个目录不行!急!
- 请问大家:应用程序怎样接受参数,例如从开始->运行那里键入文件名后加/附带的参数
procedure SetNation(cmbNation: TComboBox;const FileName: string);
var
NationRec: PNationRec;//////使用指针
DataFile: file of TNationRec;
Code, NName: string;
begin
cmbNation.Items.Clear;
if FileExists(FileName) then
begin
AssignFile(DataFile,FileName);
Reset(DataFile);
try
while not Eof(DataFile) do
begin
new(NationRec);//申请指针内存。
Read(DataFile,NationRec^);
NName := NationRec^.NationName;
Code := NationRec^.NationCode;
cmbNation.Items.AddObject(NName,TObject(NationRec));
(cmbNation.Items.AddObject(NName,TObject(NationRec^.NationCode));)
end;
finally
CloseFile(DataFile);
end;
end
else Application.MessageBox(Pchar('没找到设置文件'+ FileName),'错误',MB_OK);
end;procedure TFrom1.Button1Click(Sender: TObject);
var
s:string;
begin
s:=PNationRec(cmbNation.Items.Objects[cmbNation.ItemIndex])^.NationCode;
(s:=string(cmbNation.Items.Objects[cmbNation.ItemIndex]);)
showmessage(s);
end;
NName := NationRec.NationName;
Code := '123';
cmbNation.Items.AddObject(NName,TObject(Code));这样在下面显示的时候就不会出错
procedure TFrom1.Button1Click(Sender: TObject);
var
s: string;
begin
s:=string(cmbNation.Items.Objects[cmbNation.ItemIndex]);
showmessage(s);
end;为什么直接给一个字符串就可以呢?