首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IntraWeb中加载"bpl“

在IntraWeb中加载"bpl“
EN

Stack Overflow用户
提问于 2009-09-29 11:59:53
回答 1查看 515关注 0票数 0

我在Delphi2010的IntraWeb中设置了一个"bpl“加载模块,我发现了以下问题:

我不能创建一个实例,应用程序不是,这是一个内部表单。

代码语言:javascript
复制
procedure CargaDoSubModulo;
type
  TIWFormClass = class of TIWForm;

var
  Integra : IIntegracaoIW;
  Formulario : TIWForm;
  intClas : Integer;
  strForm : String;

begin
  strForm := srtPacotes + '_' + Copy ( IntToStr ( Rtn_Alternativa)  + 10000 ), 2, 4 );

// Descrição do formulário
  strDescricaoTela := Des_Tela;
// Nome da classe do formulário
  vrtClasseModulo := 'p_' + strForm + '.dll';

// Nome da rotina interna a ser carregada
  strForm := 'iwfrm_' + strForm;
// Nome da classe do formulário
  vrtNomeFormulario := 'T'    + strForm;
// Verificação se a rotina e compativel com o sistema iwfrm_hrb_0010
  intClas := -1;

  if WebApplication.FindComponent( strForm ) = nil then
  begin
     Formulario := TIWFormClass(FindClass( vrtNomeFormulario )).Create(WebApplication);

     if not Supports (Formulario, IIntegracaoIW) then
     begin
        WebApplication.ShowMessage(CargaTexto(msnRotIncompIntgra), smAlert);
        Exit;
     end;

     Integra := Formulario as IIntegracaoIW;
     with Integra do
     begin
        SetServidor( ParServidor1.Servidor );                             // 1
        SetAreaTrabalho( ParServidor1.AreaTrabalho );                     // 2
        SetIdUsuario( intUsuario );                                       // 3
        SetNomeUsuario( iwlStUsuario.Caption );                           // 11
        SetAcesso( intAcesso );                                           // 4
        SetEmpresa( ParServidor1.Empresa );                               // 5
        SetFilial( ParServidor1.Filial );                                 // 6
        SetIdClasse( intClas );                                           // 8
        SetVersao( strVersaoInterna );                                    // 10
        SetDescricao(Des_Tela );     // 7
        SetEnderecoIP( strIdentificacaoPorta );                           // 13
        SetDataTrabalho( DateToStr(dtDataTrabalho) );                     // 14
        SetIdentificacaoSistema( iwlIdentificacao.Caption );              // 12
        SetModuloCarga(Rtn_Busca ); // 9
     end;
  end;
  TIWAppForm(WebApplication.FindComponent( strForm )).Show;

结束;

EN

回答 1

Stack Overflow用户

发布于 2009-09-29 22:05:26

你的问题-或者确切的问题/错误-对我来说有点不清楚。通过FindComponent定位表单有点不常见。至少你不应该调用FindComponent而不是调用nessecary,因为它可能很慢。

如果您以WebApplication为所有者创建表单,它将被添加到WebApplication.Forms Web Application.FormCount是表单的数量(UserSession在此上下文中是表单)。WebApplication.ActiveForm是当前显示的表单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1492108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档