Annexos

Incorporar un component al quadre d’eines

En aquest Annex es mostra pas a pas com incorporar un nou component creat per un usuari al quadre d’eines de l’eina integrada de desenvolupament.

A partir de les activitats desenvolupades a l’apartat “Activitats”, es vol incorporar el component desenvolupat a l’activitat 1 (botó que modifica la seva aparença en passar el ratolí pel seu damunt) a un quadre d’eines de la mateixa IDE.

L’objectiu de l’annex és agregar el nou component a una nova fitxa. Per fer-ho, serà necessari fer clic amb el botó secundari del ratolí sobre el quadre d’eines, donant l’opció d’agregar una nova fitxa, tal com es pot veure en la figura.

Figura Nova fitxa

En la figura s’indica el nom de la fitxa.

Figura Nom de la fitxa

Per indicar els controls a incorporar dins la fitxa, cal fer clic amb el botó secundari del ratolí i seleccionar l’opció: Escollir elements com es pot veure en la figura.

Figura Escollir els elements

En aquell moment s’obrirà una nova finestra en la qual es podran seleccionar les dll que continguin els components creats. En aquest cas cal seleccionar ctrlButtonPersonalitzat. S’indica en la figura.

Figura ctrlButton

Tot mostrant-se el control en la nova fitxa creada en el quadre d’eines (figura):

Figura Nova fitxa al quadre d’eines.

Creació d'un component. Definició de les propietats i mètodes.

Aquest contingut està relacionat amb el Tema 2.2 dels continguts, el referent a la creació d’un component i el que es refereix a la definició de les seves propietats i mètodes.

<iocstl textA>Per tal de demostrar el funcionament de les propietats i els mètodes es farà un petit exemple on es definirà la classe cotxe amb les propietats model, marca i preu.</iocstl>

Primerament cal definir la propietat de lectura i escriptura de la propietat Marca. El descriptor d’accés get retorna la marca del cotxe, mentre el descriptor d’accés set utilitza el paràmetre value que es passa en el descriptor d’accés set per establir la marca.

Public property Marca () as string
   Get
      Return marca
   End get
   Set (byval value as string)
      marca = value
   End set
End property

D’altra banda, definirem una nova propietat que indicarà el model del cotxe. En aquest cas incorporarem en el descriptor d’accés get la visualització d’un missatge per pantalla, per tal de demostrar que en la definició d’una propietat es pot implementar codi (com si es tractés d’un mètode).

Public property Model () as string
   Get
      MsgBox "El model del cotxe és: " + model
      Return model
   End get
   Set (byval value as string)
      model = value
   End set
End property

Finalment definim la propietat Preu, propietat que es caracteritza per ser únicament de lectura per tal d’evitar que un comercial alteri el preu del vehicle.

Public readonly property Preu () as float
   Get
      Return preu
   End get
End property

Arribat aquest punt, ens queda per descriure com s’accedeix a la propietat.

Dim cotxe1 as Cotxe = new Cotxe()
MsgBox “El preu del cotxe és:” + preu

D’aquesta manera podem observar que l’accés a una propietat, tant de lectura com d’escriptura, és exactament la mateixa que la que s’utilitzaria per accedir a un camp del mateix tipus.

Creació d'un component. Esdeveniments.

En aquest exemple, definim un delegat que rep dos paràmetres: el primer és el nou valor que hem assignat a la propietat i el segon el que tenia abans d’assignar aquest nou valor.

A continuació definim l’esdeveniment, que és del tipus del delegat. Com veiem, en realitat la definició de l’esdeveniment no es diferencia gaire de com definiríem una variable que voldríem tenir relacionada amb un esdeveniment, excepte perquè utilitzem la instrucció esdeveniment per definir-la. Aquesta instrucció fa que existeixi “automàticament” una relació entre el delegat i l’esdeveniment, de manera que no hem d’instanciar expressament el delegat per poder usar-lo.

Utilitza els esdeveniments d’una classe

Un cop tenim definit l’esdeveniment en una classe, podem rebre notificacions cada vegada que aquest esdeveniment es produeixi. Per descomptat, la classe que defineix l’esdeveniment és la que s’encarregarà de produir l’esdeveniment per informar els objectes que desitgin rebre aquesta notificació.

Per rebre el missatge de l’esdeveniment, hem de crear un mètode que tingui la mateixa signatura que el delegat que hem associat a aquest esdeveniment. Usant l’esdeveniment definit en la font 4, hauríem de fer l’associació tal com veiem en el codi de la font 5.

Client clima = new Client (); 
cli.NombreCambiado + = new 
Cliente.NombreCambiadoEventHandler ( 
cli_NombreCambiado); 

El mètode indicat en el constructor del delegat l’hem definit amb la signatura determinada pel propi delegat, i la definició queda com veiem en la font 6.

void cli_NombreCambiado (string nou, string anterior) 
( 
   label2.Text = "S’ha canviat el nom: \ n" + 
   "Nou valor:" + nou + "\ n" + 
   "Valor anterior:" + anterior; 
) 

Com podem apreciar, la manera d’associar l’esdeveniment amb el mètode que rebrà la notificació cada vegada que aquesta es produeixi està utilitzant l’operador + =, que com vam veure és la manera que tenen els delegats multidifusió d’afegir els mètodes que rebran l’avís quan aquest delegat sigui cridat; en el cas dels esdeveniments, aquest avís s’iniciarà quan llancem l’esdeveniment des de la classe que el defineix.

Components al mercat.

A continuació es mostren alguns exemples de pàgines web (empreses) que ofereixen components per a desenvolupadors. N’hi ha moltes més i aquest és només un petit recull a mode d’exemple. Alguns dels components s’ofereixen gratuïtament, però els més nous o els més desenvolupats acostumen a ser de pagament.

Develop Express ha creat un paquet ofimàtic de components per a Visual Studio dissenyat per ajudar els desenvolupadors a crear aplicacions amb components d’alta qualitat i funcionalitat, invertint un gran esforç en l’aparença visual dels components.

Develop Express està tan convençut de les capacitats dels seus components que dóna l’opció de recuperar els diners si no s’està satisfet amb el producte. Sembla una broma o un sistema de màrqueting digne de centres comercials, però val a dir que no hi ha res millor per a un programador que poder accedir als desenvolupadors d’eines de desenvolupament integrades o de components per poder conèixer de primera mà el seu funcionament correcte, abans de la compra o durant la seva utilització.

En la figura es pot veure un exemple de components que s’ofereixen en aquest web.

Figura Devexpress

Es pot accedir a tots els seus continguts a través de: http://www.devexpress.com/

Component One és un dels paquets més complets de components atès que proporciona components per a entorns Windows, web, dispositius mòbils, etc. A la figura es pot veure un exemple dels components que ofereixen.

Figura Component One.

Es pot obtenir més informació i veure el funcionament dels components a: http://www.componentone.com/

Telerik .- Ofereix moltes possibilitats de components per a WebForms, fa poc van alliberar els seus components per WinForms, suportant interfícies estil Vista, podeu descarregar una versió de demostració des d’aquí. Es pot trobar més informació al web: http://www.telerik.com/.

NetAdvantage .- Ofereix molts components que permeten la modificació de l’aparença de les interfícies d’usuari. Es pot trobar més informació al web: http://www.infragistics.com/.

Anar a la pàgina anterior:
Exercicis d'autoavaluació
Anar a la pàgina següent:
Usabilitat