2009-09-29 46 views
0

我在IntraWeb,Delphi2010中設置了一個「bpl」加載模塊,並且發現了以下問題:
我沒有創建應用程序實例,是作爲一種內部形式。
IntraWeb中的「bpl」加載

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; 

end;

+0

我試着改進你的代碼格式,但我仍然不明白你的問題。你可以編輯它,使它更清楚你想要做什麼,幷包括你得到的任何錯誤信息? Faloportuguêssóum pouquinho。 – Argalatyr 2009-09-29 13:15:01

+0

那麼... 我設置了一個模塊選擇器... 主模塊是一個Dll,輔助模塊是Bpl,從選擇器(Dll)內部加載,或者是: 第一次設置vrtClasseModulo中模塊的名稱; 第二個設置vrtNomeFormulario中模塊的形式的名稱,即Class; 第三驗證她是否存在;和 第4次初始化和我目前形成。 就是這樣,我想要做.... 這是值得的幫助...和我說一些英語....很少.... – Amir 2009-09-30 20:08:03

回答

1

你的問題 - 或者實際上確切的問題/錯誤 - 對我來說有點不清楚。通過FindComponent查找表單有點不常見。至少你不應該調用FindComponent而不是nessecary,因爲它可能很慢。

如果您使用WebApplication作爲所有者創建表單,它將被添加到WebApplication.Forms Web Application.FormCount是表單的數量(UserSession是此上下文中的表單)。 WebApplication.ActiveForm是當前顯示的表單。