过程里面写过程的意义

churchatp1 2006-03-30 09:28:20
例如:
procedure TF_ImportStockSector.SetImportData;
procedure CalcData(icNode: TdxTreeListNode; iiID: Integer);
var
BondPoolStrings: TStrings;
lcNodeTemp: TdxTreeListNode;
j: Integer;
lsID: String;
begin
if icNode.HasChildren then
begin
BondPoolStrings := TStringList.Create;
BondPoolStrings.Add(IntToStr(iiID));
BondPoolStrings.Add(icNode.Strings[0]); //库名称
BondPoolStrings.Add('-'); //库类型
BondPoolStrings.Add('-'); //证券代码
BondPoolStrings.Add('-'); //交易市场
lsID := IntToStr(UCommonOthers.GC_GetGenerateCode('pm_securities_sector',1));
BondPoolStrings.Add(lsID);//股票库ID
ImportData.Add(BondPoolStrings);
for j := 0 to icNode.Count - 1 do
begin
lcNodeTemp := icNode.Items[j];
//计算汇总数据,递归调用
CalcData(lcNodeTemp,StrToInt(lsID));
end;
end
else
begin
BondPoolStrings := TStringList.Create;
if icNode.Strings[2] = '' then
begin
BondPoolStrings.Add(IntToStr(iiID));
BondPoolStrings.Add(icNode.Strings[0]); //库名称
BondPoolStrings.Add('-'); //库类型
BondPoolStrings.Add('-'); //证券代码
BondPoolStrings.Add('-'); //交易市场
lsID := IntToStr(UCommonOthers.GC_GetGenerateCode('pm_securities_sector',1));
BondPoolStrings.Add(lsID);//股票库ID
end
else
begin
BondPoolStrings.Add('0'); //父ID
BondPoolStrings.Add('-'); //库名称
BondPoolStrings.Add('-'); //库类型
BondPoolStrings.Add(icNode.Strings[1]); //证券代码
BondPoolStrings.Add(icNode.Strings[0]); //交易市场
BondPoolStrings.Add(IntToStr(iiID)); //库ID
end;
ImportData.Add(BondPoolStrings);
end;
end;
var
i: Integer;
begin
for i := 0 to Grid.Count - 1 do//Iterate
begin
CalcData(Grid.Items[i],0);
end;
end;
过程里面写过程是为什么,和我直接写在过程外边的过程有什么地方不一样吗
...全文
141 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuteant 2006-03-30
  • 打赏
  • 举报
回复
你可以把它看作是局部过程,只能是所在过程里面能调用它
才子鸣 2006-03-30
  • 打赏
  • 举报
回复
UP
僵哥 2006-03-30
  • 打赏
  • 举报
回复
寫成過程通常是便各代碼更具可讀性,以及提高代碼的重用性,把某些代碼寫成一個過程的子過程當中,一則與父級過程共用相應的參數及變量(作用域),二則可以啟到對子過程的保護,不至於讓外界非法調用.
NightCloud 2006-03-30
  • 打赏
  • 举报
回复
你把主过程var的定义放到子过程的前面就可以调用了
cuteant 2006-03-30
  • 打赏
  • 举报
回复
你要把var i: integer提前到子过程定义的前面就可以了
cuteant 2006-03-30
  • 打赏
  • 举报
回复
不可以。。。
apartst 2006-03-30
  • 打赏
  • 举报
回复
可以直接调用
churchatp1 2006-03-30
  • 打赏
  • 举报
回复
那是不是说我在子过程里面可以调用父过程的变量,例如i,直接调用就可以了吗

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧