CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

关于stringlist的使用;大家看看我这段程序哪里有问题,给分20分

楼主zhou151420448(我是新手)2005-06-04 18:35:32 在 Delphi / 语言基础/算法/系统设计 提问

procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
      FileList:=TStringList.create;   //生成全局实例   FileList  
  end;  
   
  procedure   TForm1.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
  begin  
          FileList.Free;                           //释放列表  
  end;  
   
  procedure   TForm1.Action1Execute(Sender:   TObject);       //打开添加文件  
  var  
      i:integer;  
  begin  
      if   self.OpenDialog1.execute   then  
      FileList.add(Self.OpenDialog1.FileName);  
  end;  
   
  //然后我另外有个列表skn,保存皮肤文件用的  
   
  procedure   TForm1.BitBtn7Click(Sender:   TObject);     //更换皮肤动作  
  var  
        skn:TStringList;  
        sr:TSearchrec;  
        tmp:string;  
        i:=integer;  
  begin  
      skn:=TStringList.Create;  
      skn.Clear;  
      if   FindFirst('*.skn',FaAnyFile,sr)=0   then                         //查找目录下面的皮肤文件,  
      begin  
      tmp:=ExtractFileExt(sr.Name);  
      if   Tmp='.skn'   then   skn.Add(sr.Name);                 //添加皮肤文件名到skn序列中  
      end;  
      while   FindNext(sr)=0   do  
      begin  
      tmp:=ExtractFileExt(sr.Name);  
      if   Tmp='.skn'   then   skn.Add(sr.Name);  
      end;  
      FindClose(sr);  
      randomize();  
      i:=RanDom(skn.count-1);       //产生一个随机的皮肤索引号  
      if   FileExists(skn[i])   then     self.SkinData1.LoadFromFile(skn[j1]);     //装载皮肤  
      skn.Free;  
  end;  
   
        问题说明:不先使用添加文件动作procedure   TForm1.Action1Execute(Sender:   TObject);    
  更换皮肤正常,如果使用按钮先运行Action1那么  
      skn.count总是等于0,好像不能读取皮肤文件到序列,  
      i的直会在-1000000     和   +100000的很大一个范围内变化,对应不了皮肤文件的索引了,  
  虽然if   FileExists(skn[i])   then     self.SkinData1.LoadFromFile(skn[j1]);     语句多余,但是不判断就会装入出错;加入这个语句,先运行打开文件以后就不能更换皮肤了,还会提示内存冲突;  
        我声明skn为全局对象一样出错,百思不得其解啊,希望大家指教  
      请问大家,是不是同时使用2个字符串列表会出错呢?  
       
   
  问题点数:20、回复次数:2Top

1 楼budi(http://lysee.oicp.net)回复于 2005-06-04 18:59:14 得分 20

修改OPenDialog的属性,禁止改变工作目录Top

2 楼zhou151420448(我是新手)回复于 2005-06-04 19:54:38 得分 0

谢谢2楼,怎么给你分?  
  想不通上面编译运行程序,在程序退出的时候会提示内存错,  
  按照你的方法改了,好像没出现了,我在试验一下Top

相关问题

  • 使用resin的,应该把bean程序放在哪里呢?
  • 请教!自定义函数怎么使用,加在程序哪里?
  • vb.net应用程序使用!
  • 一个关于WINDOWS平台下控制台程序中的时钟使用问题,帮忙看看下面程序哪里出错了
  • C++ Builder中如何使用Windows 的API函数,哪里有这样的源程序
  • 请问哪里有关于使用installshield做安装程序的文章或资料。
  • 请问哪里有CS1.5服务器端、客户端的程序以及配置使用方法?
  • 请问哪里有《使用Visual Basic和UML开发应用程序》这本书下载
  • 哪里有inno setup的使用说明,如何在卸载时也运行某个程序
  • 请问在使用多线程程序时,最主要要注意的问题在哪里?如何解决?

关键词

  • 文件
  • skn
  • sr
  • 皮肤
  • filelist
  • tstringlist
  • tobject
  • procedure tform
  • tmp
  • self

得分解答快速导航

  • 帖主:zhou151420448
  • budi

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo