HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

IDE beépülő modulok


Példaprogram letöltése

19424 bájt

A Visual Studio.NET rendszer elődeihez képest még kiforrottabban támogatja a beépülő modulok létrehozásának lehetőségét. A technológia segítségével funkciókat építhetünk a keretrendszerbe, melyek önálló menüpontként megjelenve érhetők el, vagy a rendszer egyes állapotaihoz kapcsolva futhatnak le, kezelő felület megjelenítése nélkül. Cikkünkben egy ilyen beépülő modult készítünk el, mely a keretrendszer Tools menüjéből érhető el, és a megadott szöveget beszúrja az éppen szerkesztett állomány aktuális kurzorpozíciójába.

A mellékelt példa használatához a modulhoz kapcsolódó bejegyzést el kell helyezni a Rendszerleíró adatbázisban. Ennek érdekében futtassa le a ReCreateCommands.reg állományt.
Az elkészítendő modul a Visual studio.NET IDE Tools menüjében jelenik meg legfelső menüpontként. A menüpont kiválasztásakor megjelenítünk egy dialógus ablakot, melyben megadhatunk egy tetszőleges hosszúságú szöveget, majd a BESZÚRÁS gomb segítségével elhelyezhetjük azt a szerkesztett állományban.
A beépülő modul létrehozását egy önálló projektfajta segíti, mely az Other Projects csoportban található, az Extensibility Projects alcsoportban. Létrehozásához válasszuk a Visual Studio.NET Add-in típust. Egy varázsló segítségével haladhatunk végig a létrehozás folyamatán.
A hatlépéses varázsló negyedik paneljén meg kell adnunk, hogy a modul rendelkezzen felhasználói felülettel, valamint hogy az IDE indulásakor töltődjön be. A varázsló többi ablaka opcionális kérdéseket tesz fel a modullal kapcsolatban. Ezeket átugorhatjuk. A létrehozott projekthez kapcsolódik egy telepítő alkalmazás projektje is, melyre most példánkban nem lesz szükség.
A projekt Connect.cs állománya tartalmazza a szükséges osztály deklarációját, melynek jelentős, és felhasznált metódusait most elemezzük.
A projekt fordításakor a modul assembly-je COM komponensként regisztrálódik.
Az osztály OnConnection metódusában történik meg a menüpont létrehozása, majd elhelyezése a menürendszerben. A legtöbb művelet kódját készen kapjuk, csupán apró kiegészítéseket kell itt eszközölnünk, a modul megjelenésének testre szabása érdekében.
A létrehozás a Commands osztály statikus AddNamedCommand metódusával történik, melynek második paramétere a parancs neve, harmadik paraméterben kell megadnunk a menüponton megjelenő szöveget.
Command command = commands.AddNamedCommand(addInInstance, "VSAddin", "Szöveg beszúrása", "Beszúrja a megadot szöveget az éppen szerkesztett állományba.", true, 59, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported+(int)vsCommandStatus.vsCommandStatusEnabled);
Majd a parancs bekerül a parancslistába, a következő módon:
CommandBarControl commandBarControl = command.AddControl(commandBar, 1);
A szöveg beszúrásához egy Form jelenik meg a menüpontra kattintáskor. Ennek kódja az InsertForm projektben történik, mely egy Windows-os alkalmazás azzal a különbséggel, hogy a kimenet egy DLL.
A Form1 osztály segítségével jelenítjük meg az ablakot, melynek text tagváltozója fogja tartalmazni bezáráskor a szövegmezőben megadott szöveget.
A modul Exec metódusában példányosítjuk a Form1 osztályt, majd megjelenítjük a Form-ot. A bezárás után meghívunk egy InsertWords metódust, melynek paramétere a megadott szöveg.
A metódusban a szöveg aktuális pozíciójába helyezzük a szöveget, a következő kód segítségével:
if (null != applicationObject.ActiveDocument)
{
  ((TextSelection)applicationObject.ActiveDocument.Selection).Insert(text,(int)EnvDTE.vsInsertFlags.vsInsertFlagsCollapseToEnd);
}
Az Exec metódus kódja tehát a következő:
if(commandName == "VSAddin.Connect.VSAddin")
{
  Form1 f = new Form1();
  f.ShowDialog();
  if (f.text != "")
  {
    handled = InsertWords(f.text);
  }
  else
  {
    handled = true;
  }
  return;
}
A commandName paraméter adja meg a deklarált parancs teljes nevét, mellyel azonosíthatjuk az adott menü mögötti funkciót. A parancsunk teljes neve VSAddin.Connect.VSAddin.
A modul kipróbálásához fordítás után zárjuk be a keretrendszert, majd futtassuk le a mellékelt regisztráló állományt. Újra megnyitva a keretrendszert már látható lesz a Tools menüben a „Szöveg beszúrása” feliratú menüpont.

Cikksorozat

#IDKategóriaCikk címeSorozat
3643DelphiFormEditor1. rész
3689DelphiProject és modul információk2. rész
3719DelphiMegnyitás, mentés3. rész
3749DelphiKódszerkesztő4. rész
3778DelphiForráskód írása, olvasása5. rész
3809DelphiInterfész a kódszerkesztő ablakhoz6. rész
3839DelphiKijelölt blokkok7. rész
3869DelphiA buffer beállításai8. rész
3899DelphiKörnyezeti és Project opciók9. rész
3929DelphiKurzor a kódszerkesztőben10. rész
3959DelphiKeresés és csere beállításai11. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 366. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |