HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Saját kontrol használata ActiveX vezérlőként


Példaprogram letöltése

16781 bájt

A .NET rendszer segítségével a technológiák széles skálájának ötvözésére van lehetőségünk. Bizonyára előfordult már Webes fejlesztés során, hogy valamilyen funkciót a rendelkezésre álló kontrolok egyike sem tudta produkálni. Ezt a hiányt feloldandó, több dolgot tehetünk. Vagy készítünk egy Webes kontrolt, és JavaScript felhasználásával oldjuk meg a problémát, vagy készítünk egy ActiveX-et, egyszerűbb megoldásként. Cikkünkben bemutatjuk, hogyan tudunk egy kontrolt ActiveX-ként működtetni, és a felhasználó böngészőjében megjeleníteni.

Mellékelt példa megnyitása előtt szükséges egy ActiveXTest nevű virtuális könyvtár létrehozása, mely a példa mappájában található ActiveXTest alkönyvtárra mutat. Ehhez nyissa meg a mappa Tulajdonság ablakát és itt a Webmegosztás lapon engedélyezze a mappa megosztását olvasási és parancsfájlok futtatási jogával.
A példa használata előtt az ActiveXControl projekt fordítása után generálódott ActiveXControl.dll állományt helyezze el az ActiveXTest mappában, a WebForm1.aspx állomány mellé.
Kontrol elkészítése
A vezérlőként működtetett kód nem más, mint egy Windows-os, felhasználói kontrol, melyben tetszőleges vezérlőket használhatunk, és tetszőleges funkciókat implementálhatunk.
A kontrolt úgy készítjük, mintha Windows-os alkalmazásban való felhasználás lenne a célunk, a különlegesség a Webes űrlapon való felhasználásban van. A kontrolunk egyszerű, csupán egy ListBox kontrolt tartalmaz, melyben a hívó környezetből bevinni szándékozott input karakterláncokat tároljuk. A lista maximális elemszáma 10. A lista telítettségének jelzését egy ProgressBar kontrollal is jelezzük a példa kedvéért, melynek Webes megvalósítása körülményes, és kényelmetlen dolog volna.
Amennyiben a lista „megtelik”, egy üzenetpanel jelenik meg, tájékoztatva a felhasználót.
A kontrol nyilvános tagja egy SetText nevű property, melyen keresztül a hívó környezet kapcsolatot teremthet a kontrollal, akár JavaScript függvényen belül is. A property-t egy interfésztől örökli a kontrol, ennek kódja a következő:
public interface IMyActiveX
{
  string SetText {set;get ;}
}
A property egy privát változót állít, a következőképpen kódolva:
private string list;
...
public string SetText
{
  get
  {
    return list;
  }
A property-t lekérdezve mindig a listába utoljára bevitt elemet kaphatjuk meg. A property-n keresztül pedig elemet adhatunk a listához.
  set
  {
    list = value;
    if (listBox1.Items.Count < 10)
    {
      listBox1.Items.Add(value);
      progressBar1.PerformStep();
    }
    else
    {
      MessageBox.Show("A lista megtelt, több elemet nem vihet be!");
    }
  }
}
Amikor a lista elemszáma eléri a 10-et, akkor megjelenik a figyelmeztetés. Minden egyes új bevitelnél egyet mozdítunk a folyamatjelzőn is eközben.
Felhasználás Weblapon
A kontrol egyszerűen felhasználható, csak arra kell figyelnünk, hogy a hívó Webes űrlap elérje az assembly-t tartalmazó DLL-t. Ennek érdekében a dinamikus könyvtárat el kell helyezni a Web-alkalmazás mappájában, az ActiveXTest mappában.
A Weblapon példányosítunk egy objektumot az <object></object> elemek segítségével a következőképpen:
<OBJECT id="stringcontrol1" style="..." classid="ActiveXControl.dll#ActiveXControl.StringControl" name="stringcontrol1" VIEWASTEXT>
</OBJECT>
A DLL neve után a „#” jel segítségével hivatkozunk a névtér osztályára, a két nevet egymástól ponttal elválasztva.
A WebForm-ra helyezett beviteli mezőben meg kell adni a tárolandó karakterláncot, majd a BEVITEL gombra kell kattintani. Ekkor meghívódik a SetControlText JavaScript függvény, melyben értéket adunk a kontrol SetText property-jének.
function SetControlText()
{
  document.all.stringcontrol1.SetText = document.all.textBox1.value;
  document.all.textBox1.value = "";
}
A LEKÉRDEZ gomb segítségével le is kérdezhetjük a property aktuális értékét. Ekkor a GetControlLastText függvény fut le:
function GetControlLastText()
{
  document.all.textBox2.value = document.all.stringcontrol1.SetText;
}

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 356. 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 |