HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Erőforrás megosztása programok között


Példaprogram letöltése

24986 bájt

A dinamikusan betöltődő könyvtárak előnye, hogy egyszerre több alkalmazás is használhatja a saját céljaira egy időben azok kódját. Ennek értelmében egy Windows-os alkalmazás és egy Visual Studio.NET beépülő modul is használhatja ugyanazt az erőforrást. Cikkünkben elkészítünk egy példát, melyben egy dialógusablak kódját töltjük be a két típusba tartozó alkalmazásba, akár egy időben.

Beépülő modul elkészítése
A Visual Studio.NET beépülő moduljai (Add-ins) igen hasznos kiegészítései a keretrendszernek, hiszen tetszőleges funkciókkal egészíthetjük ki a Visual Studio.NET lehetőségeinek egyébként is széles palettáját.
A modulok általában úgy működnek, hogy az IDE menürendszerének egy tetszőleges menüjében megjelenik egy menüpont, és az erre történő kattintáskor aktiválhatjuk az adott Add-in egy bizonyos funkcióját. A beépített funkciók és a megjelenítendő menüpontok száma tetszőleges lehet.
A mellékelt modul is ebbe a csoportba tartozik, vagyis a Tools menüben megjelenő menüpontra kattintva megjeleníthetünk egy dátumválasztó dialógusablakot, melyből kiválasztva egy dátumot az megjelenik az éppen megnyitott fájl aktuális kurzorpozíciójában.
A megjelenítendő dialógusablak kódja egy DLL-ben található, mely megosztásra kerül a modul és egy, a telepítés folyamán a modullal azonos mappába kerülő Windows-os alkalmazás között. Lássuk, hogy néz ki a modul kódja.
A Connect osztály OnConnection metódusában gondoskodunk arról, hogy a menüpont megjelenjen a Tools menüben. Első lépésben megadjuk a feliratot és hozzárendelünk egy utasítást.
Command command = commands.AddNamedCommand(addInInstance, "SEAddin", "Dátum kiválasztása", "Beszúrja a kiválasztott dátumot", true, 59, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported+(int)vsCommandStatus.vsCommandStatusEnabled);
A következő lépésben az új menüpontot beillesztjük a sorba.
CommandBar commandBar = (CommandBar)commandBars["Tools"];
CommandBarControl commandBarControl = command.AddControl(commandBar, 1);
Az Exec metódusban kódoljuk le, hogy a menüpontra történő kattintáskor a megadott funkció hajtódjon végre. Ekkor megvizsgáljuk, hogy a parancs neve megegyezik-e a „SEAddin.Connect.SEAddin” karakterlánccal.
if(commandName == "SEAddin.Connect.SEAddin")
{
Ha igen, akkor megjelenítjük a dialógusablakot, és választás esetén meghívjuk az InsertDate metódust, amely beilleszti a dátumot a megfelelő pozícióba.
  SEDialog.Dialog1 f = new Dialog1();
  f.ShowDialog();
  if (f.GetDate() != "")
  {
    handled = InsertDate(f.GetDate());
    ...
A fájl aktuális pozíciójába beszúródik az aznapi dátum, és a pontos idő.
((TextSelection)applicationObject.ActiveDocument.Selection).Insert(text,(int)EnvDTE.vsInsertFlags.vsInsertFlagsCollapseToEnd);
Dialógusablak kódja
A dialógusablak egy Windows-os alkalmazás, melynek kimenete nem futtatható állomány, hanem egy DLL.
Ennek megadása a projekt tulajdonságlapján történik.
A dialógusablak egy MonthCalendar kontrol segítségével teszi lehetővé, hogy egy tetszőleges dátumot válasszunk ki, majd ennek megtörténtekor az ablakot bezárjuk. Ennek érdekében a kontrol DataChanged eseményét kell kezelnünk, a dátumot itt eltároljuk egy változóban.
private void monthCalendar1_DateSelected(object sender,DateRangeEventArgs e)
{
  date = monthCalendar1.SelectionStart.ToString("yyyy.MM.dd. hh:mm:ss");
  Close();      
}
Windows-os kliens elkészítése
A kliensalkalmazásban csupán megjelenítjük egy gombnyomásra a dátumválasztó ablakot, majd annak bezárásakor lekérdezzük a megadott dátumot. Ehhez meghívjuk a választó-ablak osztályának GetDate metódusát.
Dialog1 f = new Dialog1();
f.ShowDialog();
if (f.GetDate() != "")
{
  textBox1.Text = f.GetDate();
}
A beépülő modul telepítője
A beépülő modulok telepítője alapértelmezésben csak a referenciaként hivatkozott DLL állományát telepíti a célszámítógépre. Annak érdekében, hogy telepítéskor a kliensalkalmazás is erre a célhelyre kerüljön, meg kell adni a kliensalkalmazás EXE állományát, mint kimeneti állományt.
Ehhez válasszuk a telepítő projektjének gyorsmenüjében az Add – Project Output pontot. Ekkor megjelenik egy dialógusablak.
Az ablak Project listájából válasszuk ki a kliensalkalmazás projektjét, majd a Primary Output elemet. Ekkor elérhetjük, hogy a telepítés után a Windows-os alkalmazás EXE állománya is telepítésre kerül, és a referenciaként megadott DLL-t használja.

Cikksorozat

#IDKategóriaCikk címeSorozat
2591WindowsTippek és trükkök - RAS - Modem csengetési szám állítása1. rész
2622WindowsTippek és trükkök - Program futtatása más felhasználóként2. rész
2640WindowsA Windows ikonméretének megváltoztatása és Windows 2000 Asztaltémák3. rész
2657WindowsTippek és trükkök - Internet Explorer4. rész
2667WindowsTippek és trükkök5. rész
2684WindowsAlapértelmezések állítása, telepítési fájlok helye, intéző nézetek6. rész
2696WindowsBiztonsági trükkök7. rész
2702WindowsWindows XP trükkök8. rész
2729WindowsWindows 2000 és XP tippek, trükkök9. rész
2757WindowsRegistry trükkök10. rész
2784WindowsTippek, trükkök11. rész
2829WindowsTippek, trükkök12. rész
2889WindowsWindows XP tippek13. rész
2909WindowsTippek Windows XP-hez14. rész
2919WindowsWindows tippek15. rész
2924WindowsWindows tippek16. rész
2963WindowsWindows tippek17. rész
2973WindowsWindows Tippek18. rész
2981WindowsWindows tippek19. rész
2990WindowsTippek-trükkök20. rész
3027WindowsIIS tippek21. rész
3034WindowsWindows XP tippek-trükkök22. rész
3088WindowsWindows 2000/XP tippek, trükkök23. rész
3133WindowsWindows XP tippcsokor24. rész
3140WindowsWindows XP tippek, trükkök25. rész
3152WindowsXP és IIS tippek - trükkök26. rész
3158WindowsWindows XP tippek, trükkök27. rész
3168WindowsTippek, trükkök28. rész
3170WindowsRegistry trükkök29. rész
3179WindowsTippek, trükkök30. rész
3197WindowsWindows XP tippek, trükkök31. rész
3205WindowsTippek, trükkök32. rész
3214WindowsTippek, trükkök33. rész
3223WindowsTippek, trükkök34. rész
3233WindowsTippek, trükkök35. rész
3271WindowsTippek, trükkök36. rész
3307WindowsTippek, trükkök37. rész
3370WindowsTippek, trükkök38. rész
3399WindowsTippek, trükkök39. rész
3510WindowsTippek, trükkök40. rész
3611WindowsHardverrel kapcsolatos tippek, trükkök41. rész
3668WindowsRegistry trükkök42. rész
3711WindowsTippek, trükkök43. rész
3771WindowsTippek, trükkök44. rész
3801WindowsTippek, trükkök45. rész
3831WindowsTippek, trükkök46. rész
3891WindowsTippek, trükkök47. rész
3921WindowsTippek, trükkök48. rész
3981WindowsTippek, trükkök49. rész
4041WindowsTippek, trükkök50. rész
4071WindowsTippek, trükkök51. rész
4151WindowsTippek, trükkök52. rész
4171C#Tippek, trükkök53. rész
4211WindowsTippek, trükkök54. rész
4251WindowsTippek, trükkök55. rész
4281WindowsTippek, trükkök56. rész
3589DelphiTippek, trükkök57. rész
3718DelphiTippek, trükkök58. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 673. 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 |