簡體   English   中英

從delphi代碼調用C ++ Builder XE Form

[英]calling C++ builder XE Form from delphi code

我正在使用JEDI JCL軟件包中的出色TExceptionDialog來顯示C ++構建器XE項目中未處理的異常,到目前為止一切正常。 我已經決定通過編寫自己的自定義表單以通過FTP將崩潰報告上傳到服務器來對它進行一些增強。

問題是我無法從delphi PAS單元中打開我的自定義表單,試圖將其定義為外部表單(此處沒有delphi程序員,對不起:(),但不知道如何正確地編寫代碼。我已經閱讀了很多教程但是除了為我的自定義表單編寫DLL或OLE容器外,找不到任何有用的東西,對這個項目來說確實太過分了。

問題是,如何正確執行此任務? 如何從PAS delphi單元執行C ++單元中定義的表單的ShowModal()?

我找到了一種簡單實用的方法,雖然有點丑陋,但可以工作!

技巧是通過使用Screen.Forms對象遍歷所有表單來獲取表單。 我已經將表單的TAG屬性設置為預定義的數字,只是為了獲得它的簡單ID。

簡而言之,在表單的C ++單元中,我將執行以下操作:

MyForm->Tag=9999; // easy way of Iding my form

然后,在我的TExceptionDialog的delphi單元中,在SEND按鈕中單擊方法:

procedure TExceptionDialog.SendBtnClick(Sender: TObject);
var
   i: integer;
   form: TForm;
begin
  for i := 0 to Screen.FormCount-1 do // all forms
  begin
    form := Screen.Forms[i]; // get a form
    if(form.Tag = 9999) then // check if its my form
    begin
      form.ShowModal; // if its mine, call showmodal
      break;
    end;
  end;
  ModalResult := mrOk;  // return to my app
end;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM