Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Style de programmation : utilisation de _BaseClasses.BaseForm

0000001927     -      08/07/2015

L'insertion de fenêtres provenant de classes managées (.net) dans une application non managée (Foxpro) n'est pas triviale. Cela requiert une mécanique complexe. L'essentiel de cette mécanique est contenue dans les classes _BaseClasses.BaseForm et _BaseClasses.BaseForm2007 de MercatorUi.

Dès lors, il est nécessaire que chaque fenêtre .net ajoutée dans Mercator soit une classe dérivée de _BaseClasses.BaseForm ou _BaseClasses.BaseForm2007, ceci tant pour les fenêtres modales que non modales. La différence entre les deux classes de base tient uniquement dans le style de bordure. Dans Mercator, _BaseClasses.BaseForm2007 est uniquement utilisée pour les fenêtres de type "boîte de dialogue".

Le projet ci-joint montre comment utiliser ces classes de base. Il présente deux fenêtres :

  • NonModalForm : exemple de fenêtre non modale, avec un bandeau dans le bas et 2 boutons de l'interface de Mercator
  • ModalForm : exemple de boîte de dialogue (fenêtre modale), avec boutons "OK" et "Annuler".

Pour pouvoir utiliser ce projet, il faut ajouter ces références :

  • MercatorUi.dll
  • MercatorTunnel.dll
  • MeractorComponents.dll

Pour une utilisation dans Mercator, il faut bien entendu placer MinimumForms.dll dans le répertoire principal.

 


 

Fenêtre non modale

NonModalForm.cs contient le code minimal pour une fenêtre non modale de Mercator, avec un bandeau dans le bas et 2 boutons de l'interface de Mercator. Vous noterez que tout ce qui est relatif au bandeau et aux boutons est contenu dans l'espace de nom MercatorUi.BoutonsPro.

Le groupe BleuPro, ButtonXPro et ButtonItemPro contient un ensemble d'automatismes qui seront présents de façon native dans votre développement :

  • Changement automatique du libellé et de l'image du bouton lorsqu'un item est sélectionné
  • Propagation de l'évènement lié à l'item sélectionné sur le bouton
  • Gestion de la désactivation automatique du bouton si l'item en cours est désactivé (Enabled = false)
  • ...

Sur une form vide, on commence par ajouter le composant BleuPro en le tirant de la palette d'outils. Il suffit ensuite de mettre sa propriété Dock à Bottom. Ainsi, le bandeau est "accroché" au bas de la fenêtre et sa taille s'adapte de façon automatique lors d'un changement de dimensions de la fenêtre.

Ensuite, on dépose dans le bandeau 2 ButtonXPro.

Pour ajouter des items dans ces boutons, il suffit de sélectionner le bouton souhaité, de cliquer sur le petit bouton apparaissant en haut à droite de celui-ci et de choisir "Add Button". Attention : l'item ajouté sera de type "DevComponents.DotNetBar.ButtonItem", qu'il y a lieu de changer en "MercatorUi.BoutonsPro.ButtonItemPro". Pour cela, il suffit d'éditer le fichier form.designer.cs et d'y remplacer à deux endroits "DevComponents.DotNetBar.ButtonItem" par "MercatorUi.BoutonsPro" :

  • dans le bas du code, dans la définition de l'item
  • plus haut dans le code, sous "private void InitializeComponent()", dans l'instanciation de l'item

Pour le reste, nous vous suggérons de voir les commentaires placés dans NonModalForm.cs.

Exemple de code pour appeler cette fenêtre à partir d'un bouton d'un signalétique version Aruba :

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;

// <ReferenceInclude>"MinimumForms.dll"</ReferenceInclude>

namespace MercatorUi.MovableControls.ButtonsCodes
{
     public static class Script
    {

         public static void Exec(MercatorUi.MovableControls. MovableButton clickedButton)
        {
             // enter your customized code here
            MinimumForms. NonModalForm nonModalForm = new MinimumForms. NonModalForm ();
            nonModalForm.Show(MercatorUi. Globals .iw);


        }
    }
}

Exemple de code pour appeler cette même fenêtre à partir de la partie FoxPro de Mercator :

ox_mercatorui.ShowExternalForm("MinimumForms.dll", "MinimumForms.NonModalForm", "")

 


 

Fenêtre modale

ModalForm.cs contient le code minimal pour une fenêtre modale de Mercator, avec un bouton OK et un bouton Annuler.

Nous vous suggérons de voir les commentaires placés dans ModalForm.cs.

Exemple de code pour appeler cette fenêtre à partir d'un bouton d'un signalétique version Aruba :

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using System.Windows.Forms;

// <ReferenceInclude>"MinimumForms.dll"</ReferenceInclude>

namespace MercatorUi.MovableControls.ButtonsCodes
{
     public static class Script
    {

         public static void Exec(MercatorUi.MovableControls. MovableButton clickedButton)
        {
             // enter your customized code here
             using (MinimumForms. ModalForm modalForm = new MinimumForms. ModalForm ())
            {
                modalForm.ShowDialog(MercatorUi. Globals .iw);
                 if (modalForm.DialogResult == DialogResult .OK)
                    MercatorUi. Dialogs .Stop( "OK" );
            }

        }
    }
}

Exemple de code pour appeler cette même fenêtre à partir de la partie FoxPro de Mercator :

ox_mercatorui.ShowExternalModalForm("MinimumForms.dll", "MinimumForms.ModalForm")



A télécharger : 0000001927.zip (12 Kb - 25/05/2011)