Ik wil een office plugin maken die een Taskpane toevoegt. Op dat TaskPane wil ik een ActiveForm en ik wil vanuit de plugin zaken op dat ActiveForm zetten.
Microsoft geeft via MSDN het volgende voorbeeld:
Dat is an sich helder. Ik heb alles zo ver dat het taskpane inderdaad aanwezig is en daarop inderdaad mijn ActiveForm staat.
De versimpelde code van het ActiveForm:
In mijn Addin Applicatie maak ik een taskpane volgens het voorbeeld van Microsoft:
Dit is in feite precies hetzelfde als MS doet.
Echter:
Geeft een AV.. iemand een idee wat ik fout doe?
Microsoft geeft via MSDN het volgende voorbeeld:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
| public class Connect : Object, Extensibility.IDTExtensibility2, ICustomTaskPaneConsumer ... object missing = Type.Missing; public CustomTaskPane CTP = null; public void CTPFactoryAvailable(ICTPFactory CTPFactoryInst) { CTP = CTPFactoryInst.CreateCTP("SampleActiveX.myControl", "Task Pane Example", missing); sampleAX = (myControl)CTP.ContentControl; sampleAX.InsertTextClicked += new InsertTextEventHandler(sampleAX_InsertTextClicked); CTP.Visible = true; } |
Dat is an sich helder. Ik heb alles zo ver dat het taskpane inderdaad aanwezig is en daarop inderdaad mijn ActiveForm staat.
De versimpelde code van het ActiveForm:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
| type TaxfrmTaskPane = class(TActiveForm, IaxfrmTaskPane) [..] public [..] procedure.Test; end; [..] Procedure TaxfrmTaskPane Test; begin ShowMessage('hello world'); end; |
In mijn Addin Applicatie maak ik een taskpane volgens het voorbeeld van Microsoft:
Delphi:
1
2
3
| TaskPane:=CTPFactoryInst.CreateCTP('myserver.axfrmTaskPane','Mijn Caption',EmptyParam); Taskpane.Visible:=True; TaskPaneContainer:=TaxfrmTaskPane(TaskPane.ContentControl); |
Dit is in feite precies hetzelfde als MS doet.
Echter:
Delphi:
1
| TaskPaneContainer.Test; |
Geeft een AV.. iemand een idee wat ik fout doe?
[ Voor 3% gewijzigd door Verwijderd op 07-05-2007 12:06 ]