Newsgroup: it.comp.lang.visual-basic
Titolo: Informazioni su ActiveX

Buongiorno a tutti, lo so ho postato già ieri scusate ma forse non era
troppo chiaro l'oggetto.
Sto incominciando a studiare le ActiveX, io volevo sapere da voi il perchè
uno dovrebbe creare degli ActiveX, quali sono i vantaggi nell'usarli, in che
applicazioni si usano maggiormente, poi volevo chiedervi un'altra cosa è
possibile creare controlli personalizzati anche nella forma
intendo(Es.Bottone Rotondo) in qualche vecchio post avevo letto che
bisognava usare 'ADD-IN' dove si trova questa applicazione???
Scusate ancora per l'insistenza.
Grazie a tutti.Andrea

 bisognava usare 'ADD-IN' dove si trova questa applicazione???
ADD-IN sono programmi che estendono le funzionalità dell'IDE di visual basic
(cioè le funzionalità di editing del sorgente) quindi non centrano nulla con
gli ActiveX.
Per fare un pulsante rotondo, devi usare le Region. Trovi diversi esempi sul
sito comune: 
http://www.it-lang-vb.net/
 Fai una ricerca con la parola chiave
"Region" e ne trovi diversi.
Non ti far fuorviare dal fatto che negli esempi si parla di finestre. Per
finestra Windows intende quasi qualsiasi cosa, anche uno usercontrol.
Ciao e buon lavoro
*Roby*

Aggiungo che una delle maggiori caratteristiche della tecnologia COM, che VB
supporta in pieno e che raramente viene usato è quello che in C viene
definito come polimorfinsmo, ovvero la possibilità di definire una funzione
che ha come parametro una variabile di tipo Object di cui la stessa non ne
conosce a priori il tipo.
Es:
A.DLL fornisce una classe CLSA1 e CLSA2
B.DLL fornisce una classe CLSB1 e CLSB2
Tutti e 4 gli oggetti delle 2 dll hanno una proprietà ID Long e svariate
altre caratteristiche diverse per ciascuna classe. L'ID identifica, in ogni
classe la natura dell'oggetto
Nel progetto VB è possibile definire una funzione
Sub ProcessObj (UnknowObj as Object)
' elabora ua delle 4 classi contenute in 2 dll esterne.
' nb: tale classe potrebbe essere definita nel progetto stesso, in un OCX,
in una DLL o in un'altro EXE
  On Error Resume Next
      Dummy&=UnknowObj.ID
  if Err<>0  Then Exit Sub          ' L'oggetto non ha una proprietà ID e
non può essere elabrato
  On Error Goto 0
     Select Case UnknowObj.ID
         Case 1
             ' la classe passata è di tipo 1
         Case 2
             ' la classe passata è di tipo 2
         Case 3
             ' la classe passata è di tipo 3
         Case 4
             ' la classe passata è di tipo 4
      End Select
End Sub
PrecessObj non conosce la natura dell'oggetto ma accetta qualsiasi classe, e
da al programmatore il compito di valutarla.
In C++ il polimorfismo è esteso a qualsiasi tipo di dati, variabili, array,
classi ecc.. In VB è consentito solo per le classi (non si può fare ad
esempio con tipi di dati definiti dall'utente) ma è ovvio che progettando
architetture del genere si possono fare cose notevoli veramente con poche
righe di codice.
I vantaggi nell'uso di questa tecnologia sono evidenti:
avendo una classe FORNO e svariate classi che descrivono cibi es: SALE,
FARINA, ACQUA, LIEVITO è possibile fare
Set PANE=FORNO.Cuoci(SALE.Join(FARINA.Join(ACQUA.Join(LIEVITO))))
l'esempio può sembrare stupido, ma se si osserva bene ci sono tutti gli
ingredienti per capirne i vantaggi :-)
--
Fabio Guerrazzi
http://www.sourcecode4free.com/cgt
fab...@libero.it
fab...@si.tdnet.it

 In C++ il polimorfismo è esteso a qualsiasi tipo di dati
Solo con le classi è possibile utilizzare il polimorfismo o meglio,
solo con puntatori o reference a classi.
Ciao.
--
BSD is for UNIX-lovers -- linux is for Windows-haters.