我以前都是 建一个不带数据模板的 工程, 所有的 数据控件 放在UserSession里 今天我突然想: 既然IW  有这项功能,肯定能用, 肯定 是我不知道如何用,或操作不对,我把 我的详细操作写下来,请大哥们帮我看看是哪 出错了?
我的环境:  WinXP+sp1  + Delphi7 + IntraWeb7.0.19
操作步骤:1、新建一个 IW工程:  在 IntraWeb Applcation Wizard 对话框     Application Type  选择: StandAlone Application (也就是第一项)
    
    Options           选择: Pool Data Connections (这是要带数据模板,我选上了)
                              Create User Session    (这是默认的)
                              
    全部都按默认的文件名存盘:
    
    清单如下:
    
    DataModule1          : TdataModule1
    IWUserSession        : TiwUserSession
    IWServerController   : TIWServerController
    IWForm1              : TIWForm1
                              
                              
2、在数据模板 DataModule1 里添加了一个 BDE 的 Session1 ,这里不做任何的数据库连接3、在所有的单元里都 按 ALT+F11 就别的单元引用过来4、在IWForm1里 双击窗口 进入 TIWForm1.IWAppFormCreate(Sender: TObject);代码如下:procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
DataModule1.    
end;    当打到 点 时应该提示属性或方法,但delphi提示:Unable to invoke Code Completion due to errors in source code
如果我在DataModule1前面加上 T 如:TDataModule1代码如下:procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
TDataModule1.    
end;    当打到 点 时 出现了提示框,但里面没有 我放到DataModule的Session1这个控件
    
    
为什么?下面我把 各单元的源代码都贴出来,您帮我看看?********************************
这是DataModule的代码
********************************unit DataModuleUnit;interfaceuses
  {$IFDEF Linux}QForms, {$ELSE}Forms, {$ENDIF}
  SysUtils, Classes, DBTables;type
  TDataModule1 = class(TDataModule)
    Session1: TSession;
  private
  public
  end;  
implementationuses ServerController, UserSessionUnit;{$R *.dfm}end.    
    
  
  
  
  ********************************
这是UserSession的代码
********************************
unit UserSessionUnit;{
  This is a DataModule where you can add components or declare fields that are specific to 
  ONE user. Instead of creating global variables, it is better to use this datamodule. You can then
  access the it using UserSession.
}
interfaceuses
  IWUserSessionBase, SysUtils, Classes;type
  TIWUserSession = class(TIWUserSessionBase)
  private
    { Private declarations }
  public
    { Public declarations }
  end;implementationuses DataModuleUnit, ServerController;{$R *.dfm}end.              
********************************
这是Project的代码
********************************
program Project1;uses
  Forms,
  IWMain,
  ServerController in 'ServerController.pas' {IWServerController: TIWServerController},
  Unit1 in 'Unit1.pas' {IWForm1: TIWFormModuleBase},
  UserSessionUnit in 'UserSessionUnit.pas' {IWUserSession: TIWUserSessionBase},
  DatamoduleUnit in 'DatamoduleUnit.pas' {DataModule1: TDataModule};{$R *.res}begin
  Application.Initialize;
  Application.CreateForm(TformIWMain, formIWMain);
  Application.Run;
end.********************************
这是主form的代码
********************************
unit Unit1;interfaceuses
  Classes, SysUtils, DataModuleUnit, IWAppForm, IWApplication, IWColor, IWTypes;type
  TIWForm1 = class(TIWAppForm)
    procedure IWAppFormCreate(Sender: TObject);
  public
  end;implementationuses ServerController, UserSessionUnit;{$R *.dfm}
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
  TDataModule1.           //这里无法引用DataModule的控件
end;initialization
  TIWForm1.SetAsMainForm;end.
                
                
                
                
                
                
********************************
这是ServerController的代码
********************************                
                
unit ServerController;interfaceuses
  SysUtils, Classes, IWServerControllerBase, IWBaseForm, HTTPApp,
  // For OnNewSession Event
  UserSessionUnit, IWApplication, IWAppForm, DataModuleUnit, IWDataModulePool;type
  TIWServerController = class(TIWServerControllerBase)
    Pool: TIWDataModulePool;
    procedure IWServerControllerBaseNewSession(ASession: TIWApplication;
      var VMainForm: TIWBaseForm);
    procedure IWServerControllerBaseCreate(Sender: TObject);
    procedure PoolCreateDataModule(var ADataModule: TDataModule);
    procedure PoolFreeDataModule(var ADataModule: TDataModule);
  private
  public
  end;  function UserSession: TIWUserSession;
  function LockDataModule: TDataModule1;
  procedure UnlockDataModule(ADataModule: TDataModule1);implementation{$R *.dfm}uses
  IWInit, IWGlobal;function UserSession: TIWUserSession;
begin
  Result := TIWUserSession(WebApplication.Data);
end;procedure TIWServerController.IWServerControllerBaseNewSession(
  ASession: TIWApplication; var VMainForm: TIWBaseForm);
begin
  ASession.Data := TIWUserSession.Create(nil);
end;procedure TIWServerController.IWServerControllerBaseCreate(Sender: TObject);
begin
  Pool.Active := True;
end;procedure TIWServerController.PoolCreateDataModule(var ADataModule: TDataModule);
begin
  ADataModule := TDataModule1.Create(nil);
end;procedure TIWServerController.PoolFreeDataModule(var ADataModule: TDataModule);
begin
  FreeAndNil(ADataModule);
end;function LockDataModule: TDataModule1;
begin
  Result := TDataModule1(TIWServerController(GServerController).Pool.Lock);
end;procedure UnlockDataModule(ADataModule: TDataModule1);
var
  LTemp: TDataModule;
begin
  LTemp := ADataModule;
  TIWServerController(GServerController).Pool.Unlock(LTemp);
end;
initialization
  TIWServerController.SetServerControllerClass;end.