系统初始化会有几次呢?
formcreate的时候做某件事情不好么?
formshow或者formactive虽然不一定是一次,但是你可以这样控制:procedure Tform1.formshow(sender:tobject);
begin
  dosomething;
  self.onshow:=nil;
end;

解决方案 »

  1.   

    是我表达不清?你们都没明白我的意思!
    怎么可以写在formcreate和formshow中?这会在每次运行程序都执行的。系统初始化指的是第一次给客户装软件时,有些系统参数需要设置,但是以后都不能改动了(即从此以后客户即使运行该程序也不能重新设置这些参数了)。
      

  2.   

    做个判断,如inifile或数据库中保存一值,在MainForm.onCreate时先读取,如果有切正确
    if aaa='aaa' then Exit
    else begin
    end;
      

  3.   

    方法有几种:
    1.写入注册表:
      在第一次运行时注册表为空,在你运行了一次之后即写入注册表中,以后每次运行从注册表中读取若已存在则表示已初始化了.
    2.写ini文件:方法与表差不多.
    3.写数据库,在连接数据库之后读出参数,加以判断即可.
      

  4.   

    INI文件和注册表都可以,而且比较方便!
      

  5.   

    谢谢后续几位的提示!另外想问大家,用INI和注册表各有什么利弊呢?
      

  6.   

    用INI和注册表各有什么利弊呢?
    个人认为相差不大:
    都需要有对对象的读写权限
    都可能受到其他系统的删除
      

  7.   

    呵呵
    写在Project中吧,
    放在Create前面除了关闭再运行,不可能有其它代码能再次调用的