我想包裝一個TFrame後裔作爲一個ActiveX控件,但似乎無法獲得控件顯示在ActiveX控件嚮導中。這種方法是否可行?如果有的話,是否有任何我可以指出的工作示例。包裝一個Delphi TFrame後代作爲一個ActiveX控件
我試圖按照說明here,但正如我所說的可用控件列表中的控件顯示。
在此先感謝。
我想包裝一個TFrame後裔作爲一個ActiveX控件,但似乎無法獲得控件顯示在ActiveX控件嚮導中。這種方法是否可行?如果有的話,是否有任何我可以指出的工作示例。包裝一個Delphi TFrame後代作爲一個ActiveX控件
我試圖按照說明here,但正如我所說的可用控件列表中的控件顯示。
在此先感謝。
@Mmarquee,最簡單的方式做,這是使用Activeform,這是一個封裝了德爾福形式的ActiveX控件,您可以使用@弗朗索瓦的建議或下一個方法可以輕鬆地將任何標準形式作爲activex控件進行部署。
首先,你需要創建一個新的ActiveX控件
alt text http://i46.tinypic.com/og2lc.png
那麼你添加新的ActiveForm
alt text http://i49.tinypic.com/20z1nk1.png
現在,你需要創建一個新的標準格式,並把你的組件這裏。
添加使用您的標準形式到位於TActiveForm
單位和申報的標準形式的變量這樣
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ActiveX, AxCtrls, Project75_TLB, StdVcl,
Form1; //your unit with the standard form
type
TActiveFormX = class(TActiveForm, IActiveFormX)
private
...
public
MyForm : TForm1;
終於在的ActiveForm的OnCreate事件你把代碼調用標準表單並嵌入到活動表單中。
procedure TActiveFormX.ActiveFormCreate(Sender: TObject);
begin
MyForm := TForm1.Create(Self); //set the owner
MyForm.Parent := Self;//embed the form
MyForm.Align := alClient;
MyForm.BorderStyle := bsNone; //hide the border of the form
MyForm.Visible := True;//makes the form visible
end;
更多信息檢查論文鏈接
我認爲最簡單的就是正常創建你的TFrame,所以你可以在普通的Delphi應用程序中使用它。
然後創建一個空的ActiveForm並將其放入其中。
瞧,你可以用你的ActiveForm,無論你想...
我想你意思是**'TFrame1' **而不是'TForm1'(在'TActiveFormX.ActiveFormCreate'方法中),不是嗎? – 2010-06-18 07:08:40