J'ai un composant activeX avec plusieurs événements. débogage de cette DLL dans les preuves .net, que les événements sont levés et peuvent être arrêtés (est-ce un mot?;)) l'enregistrement de cette DLL via regasm/codebase fonctionne et je peux ajouter cette activeX dans ax sur un formulaire. les événements sont listés dans l'explorateur activeX dans ax. mais il semble que je n'ai aucune chance de gérer les événements soulevés dans ax.Gestion des événements ActiveX dans ax 2009
L'utilisation d'un autre ActiveX (par exemple, le contrôle du sélecteur de date et d'heure Microsoft) fonctionne correctement.
j'apprécie tous les conseils ou astuces!
Voici quelques lignes du code dont je parle.
namespace <someNamespace>
{
[ProgId("<someProgID>")]
[ClassInterface(ClassInterfaceType.AutoDual), ComSourceInterfaces(typeof(<myInterface>))]
[Guid("<someGUID>")]
[ComVisible(true)]
public class <ClassName>
{
[instantiate some COM-Object, named dummy]
public
<ClassName>(...)
{
init();
}
public delegate void <someDelegate>(int a, int b);
public event someDelegate myDelegate;
[ComVisible(true)]
public void OnEvent(int a, int b)
{
if (myDelegate != null)
{
Console.WriteLine("yippie");
}
}
[ComVisible(true)]
public void run(...)
{
this.myDelegate += new someDelegate(this.OnEvent);
}
private void
onEvent(int a, int b)
{
myDelegate(a, b);
}
#endregion
}
}
[Guid("<someOtherGUID>")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface <myInterface>
{
[DispId(1)]
void myDelegate(int a, int b);
}
}
ce sont les fonctions de base (espère ne pas oublier l'un d'entre eux) se rapportant à la chose de l'événement. l'activeX lui-même est un wrapper pour un com-object, qui lui-même ne peut pas être intégré dans ax, afaik. "onEvent" est une fonction appelée par un événement du com-object et déclenche "myDelegate". tout ceci fonctionne bien, testant en studio visuel - l'événement peut être traité sur un formulaire, en appelant la partie activeX. la dernière étape serait de gérer cet événement dans ax. Comme je l'ai déjà écrit, l'événement lui-même est répertorié correctement dans l'explorateur activeX, mais je n'ai pas trouvé un moyen de réagir sur cet événement en x ++.
@Nico, désolé j'ai d'abord mal lu votre question. Je n'ai jamais utilisé x ++ ou axapta. Je pensais que vous étiez aux prises avec WinForms, mais vous semblez avoir cette partie triée. Désolé, je ne peux pas être plus utile .... – ParmesanCodice