function TSJ_MainFrm.CreateDataModule(FuncValue: ESJ_MainFunction)???(1): Boolean;
begin
  Result := False;
    case FuncValue of
    mfSJ_SCJH:???(2)
      begin
{        if not Assigned(dmkjk1) then???(3)
        begin
          dmkjk1 := Tdmkjk1.Create(self);
          dmkjk1.dbConnection.Connected := False;
          dmkjk1.dbConnection.Address := FOcxParams.AppServerIP;
        end;
谁能告诉我以上这3处是什么意思?实在看不懂!

解决方案 »

  1.   

    ESJ_MainFunction就不知道是什么了,作者肯定有他的特殊用途if not Assigned(dmkjk1) 保证数据库连接器(Tdmkjk1)只有一个实例
      

  2.   

    if not Assigned(dmkjk1) 保证数据库连接器(Tdmkjk1)只有一个实例?是什么意思?什么是数据库连接器?实例是什么?
      

  3.   

    ESJ_MainFunction 和 mfSJ_SCJH要参考上下文定义,可能是Integer,char或者是枚举,if not Assigned(dmkjk1) then 部分是为了保证dmkjk1这个东西只被创建一次,
    这样写的话在程序退出前如果有释放dmkjk1的地方必须加:dmkjk1 := nil;
      

  4.   

    TO 楼主
    你的ESJ_MainFunction应该是枚举类型,而mfSJ_SCJH是其中的一个值
    if not Assigned(dmkjk1) then保证实例只被创建一次
      

  5.   

    function TSJ_MainFrm.CreateDataModule(FuncValue: ESJ_MainFunction)???(1): Boolean;//根据上下文判断:这是一个用来创建数据模块(datamodule)的函数,成功创建返回True,不成功返回false
    begin
      Result := False;
        case FuncValue of
        mfSJ_SCJH:???(2)//这是参数传进来的值,要看Esj_mainFunction 的类型定义了肯定是作者自定义的类型,可以用Ctrl+单击Esj_MainFunction查看
          begin
    {        if not Assigned(dmkjk1) then???(3)//如果DmKjk1未创建则创建,类型为Tdmkjk1,从下面看应该是一个datamodule不过在程序启动时没有自动创建,根据Esj_MainFunction的值决定。在菜单projec-option-forms中应该在available forms 中,可以根据2法查看源程序
            begin
              dmkjk1 := Tdmkjk1.Create(self);
              dmkjk1.dbConnection.Connected := False;
              dmkjk1.dbConnection.Address := FOcxParams.AppServerIP;
            end;