U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Programmeerstijl: gebruik van _BaseClasses.BaseForm

0000001927     -      08-07-2015

Het invoegen van vensters afkomstig van beheerde klassen (.net) in een niet-beheerde applicatie (Foxpro) is niet zo eenvoudig. Daarvoor is een complexe procedure vereist. De essentie van deze procedure is opgenomen in de klassen _BaseClasses.BaseForm en _BaseClasses.BaseForm2007 van MercatorUi.

Het is dan ook noodzakelijk dat ieder .net-venster dat in Mercator wordt toegevoegd, een klasse is afgeleid van _BaseClasses.BaseForm of _BaseClasses.BaseForm2007, en dat geldt zowel voor de modale als de niet-modale vensters. De twee basisklassen onderscheiden zich enkel door de randstijl. In Mercator wordt _BaseClasses.BaseForm2007 alleen gebruikt voor de vensters van het type "dialoogvenster".

Met dit project laten we zien hoe u deze basisklassen dient te gebruiken. Het omvat twee vensters:

  • NonModalForm: voorbeeld van een niet-modaal venster, met een balk onderaan en 2 knoppen van de Mercator-interface
  • ModalForm: voorbeeld van een dialoogvenster (modaal venster), met de knoppen "OK" en "Annuleren".

Om dit project te kunnen gebruiken, moeten de volgende verwijzingen worden toegevoegd:

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

Voor gebruik in Mercator moet u uiteraard ook MimimumForms.dll in de hoofddirectory plaatsen.

 


 

Niet-modaal venster

NonModalForm.cs bevat de minimumcode voor een niet-modaal Mercator-venster, met een balk onderaan en 2 knoppen van de Mercator-interface. U merkt dat alles wat te maken heeft met de balk en de knoppen opgenomen is in de namenruimte MercatorUi.BoutonsPro.

De groep BleuPro, ButtonXPro en ButtonItemPro bevat een aantal gestuurde processen die inherent zijn aan uw ontwikkeling:

  • Automatische wijziging van de omschrijving en afbeelding van de knop bij selectie van een item
  • Verspreiding van het event gelinkt aan het op de knop geselecteerde item
  • Beheer van de automatische deactivering van de knop bij deactivering van het actieve item (Enabled = false)
  • ...

Bij een lege form begint men met het toevoegen van de component BleuPro, die men van het toolspalet versleept. Vervolgens moet men zijn eigenschap Dock instellen op Bottom. Hierdoor wordt de balk onderaan in het venster "bevestigd" en past de grootte ervan zich automatisch aan wanneer de afmetingen van het venster wijzigen.

Tot slot plaatst men in de balk 2 ButtonXPro.

Om items toe te voegen aan deze knoppen hoeft u enkel de gewenste knop te selecteren, klik op het kleine knopje dat bovenaan rechts van die knop verschijnt en kies "Add Button". Opgelet: het toegevoegde item zal van het type "DevComponents.DotNetBar.ButtonItem" zijn, dat moet worden veranderd in "MercatorUi.BoutonsPro.ButtonItemPro". Daartoe moet enkel het bestand form.designer.cs als volgt worden bewerkt: vervang op twee plaatsen "DevComponents.DotNetBar.ButtonItem" door "MercatorUi.BoutonsPro":

  • onderaan in de code, in de definitie van het item;
  • hoger in de code, onder "private void InitializeComponent()", in de oproep van het item.

Voor de rest stellen wij voor dat u de commentaren in NonModalForm.cs bekijkt.

Voorbeeldcode om dit venster op te roepen via een knop in een informatiebestand versie 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);


        }
    }
}

Voorbeeldcode om ditzelfde venster op te roepen vanuit het FoxPro-gedeelte van Mercator

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

 


 

Modaal venster

ModalForm.cs bevat de minimumcode voor een modaal Mercator-venster, met een knop OK en een knop Annuleren.

Wij stellen voor dat u de commentaren in ModalForm.cs bekijkt.

Voorbeeldcode om dit venster op te roepen via een knop in een informatiebestand versie 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" );
            }

        }
    }
}

Voorbeeldcode om ditzelfde venster op te roepen vanuit het FoxPro-gedeelte van Mercator

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



Te laden : 0000001927.zip (12 Kb - 25-05-2011)