Cet exemple illustre la façon d'amener dans une fenêtre de Mercator un composant offrant la possibilité d'insérer du texte. Cette gestion particulière parce que la position du blinking cursor pour l'insertion du texte est gérée par Windows. L'exemple ci-joint permet de placer dans une fenêtre Visual FoxPro un contrôle de type RichTextBox étendu avec une palette d'outils permettant de choisir les attributs typographiques souhaités.
La fenêtre présentée ci-dessus est une simple fenêtre Visual FoxPro dont la méthode Init contient le code suivant :
this.AddObject('UserControl1','olecontrol','MercatorDotNet.FactoryUi')
this.UserControl1.Factory.AssemblyFile="RichTextBoxExtended.dll"
this.UserControl1.Factory.ClassName="RichTextBoxExtended.RichTextBoxExtended"
this.UserControl1.Build() this.UserControl1.SetProperty("Top",5)
this.UserControl1.SetProperty("Left",5)
this.UserControl1.visible=.T.
this.resize
Et la méthode Resize contient ce code
this.UserControl1.Width=this.width
this.UserControl1.SetProperty("Width",this.Width-10)
this.UserControl1.Height=this.Height
this.UserControl1.SetProperty("Height",this.Height-10)
Le passage de paramètres au constructeur de ce composant doit se faire avant l'appel de la commande Build(), via une ou plusieurs commandes de ce type :
this.UserControl1.Factory.AddParam(m.monParamètre)
L'appel d'une méthode du composant doit se faire comme suit :
- Si la méthode ne requiert aucun paramètre : this.UserControl1.EvalMethod("NomDeMethode")
- Si la méthode requiert 1 paramètre : this.UserControl1.EvalMethod_2("NomDeMethode", m.Parametre1)
- Si la méthode requiert 2 paramètres : this.UserControl1.EvalMethod_3("NomDeMethode", m.Parametre1, m.Parametre2)
- Si la méthode requiert 3 paramètres : this.UserControl1.EvalMethod_4("NomDeMethode", m.Parametre1, m.Parametre2, m.Parametre3)
- ... jusque 5 paramètres
La méthode "EvalSubProp" permet d'évaluer n'importe quelle propriété d'un sous-objet de votre composant. Les paramètres à passer sont :
- nom de l'objet
- propriété souhaitée
La méthode "SetSubProperty" permet de modifier n'importe quelle propriété d'un sous-objet de votre composant. Les paramètres à passer sont :
- nom de l'objet
- propriété souhaitée
- valeur de cette propriété
Les sources du composant RichTextBoxExtended ainsi que celle de l'écran Visual FoxPro sont jointes à cette page.
Le contrôle utiliateur .net est inspiré de cet article.
A télécharger :
0000001499.zip (223 Kb - 14/04/2008)