Newsgroup: it.comp.lang.visual-basic
Titolo: Ereditare interfacce in VB6

Salve,
Vorrei ereditare un'interfaccia in VB6, in modo da poter mantenere tutte le
interfacce del mio oggetto COM derivanti da un'unica interfaccia.
Come posso fare?
Grazie dell'attenzione
Andrea
P.S.Su
 Google non mi pare di aver trovato qualcosa, in ogni caso sto ancora
cercando

 wrote in message
news:at1sa0$vlvja$1...@ID-170738.news.dfncis.de...

devi usare la sintassi:
Implements NomeInterfaccia
dopo avere referenziato l'interfaccia(dll) nel progetto
Ciao Biagio.

 Ciao Biagio.
Ciao
Andrea

 wrote in message
news:at217l$vlrih$1...@ID-170738.news.dfncis.de...

Volevo farti presente che in VB6 non esiste in concetto di ereditarietà, ma
esistono accrocchi...,
un'interfaccia è una classe con dei metodi privi di corpo (solo le
definizioni)
ereditando l'interfaccia con implements, ti ridefinisci i metodi che ti
interessano, usando la stessa 'signature' dei metodi da cui derivi; in
questo modo, un'applicazione esterna può lanciare le tue procedure
attraverso un'interfaccia. Ovviamente devi conoscere bene la 'signature'(i
parametri passati e ricevuti dalla funzione) dei metodi..
Un pò contorta la spiegazione?
ciao?

 ciao?
E me lo domandi?
Boh?
Ciao ciao?
Andrea

 wrote in message
news:at26me$uud3h$1...@ID-170738.news.dfncis.de...

Mi dispiace ricontraddirti, ma in VB l'ereditarietà sono solo accrocchi, non
è un vero linguaggio orientato ad oggetti...
Ci sono già state numerose discussioni a riguardo, non è più un mio
problema, in quanto da 6 mesi sono solo più su dot net....,
Comunque, l'interfaccia l'hai progettata tu o hai un'intefaccia di terze
parti da implementare; conosci tutti i metodi di questa interfaccia?

 parametri passati e ricevuti dalla funzione) dei metodi..
Per dirla in un altro modo:
Normalmente, quando crei una una classe A in VB ne definisci sia
l'interfaccia (tutti i membri pubblici) che l'implementazione; utilizzando
la parola chiave Implements con una seconda classe B si indica a VB di
ereditare dalla prima solo l'interfaccia e non l'implementazione
(quest'ultima rappresenta "l'ereditarieta'" volgarmente detta... il fatto
che A sia "priva di corpo" o meno di conseguenza e' ininfluente), che resta
invece a carico della classe B.
B *deve* implementare *tutti* (e sottolineo deve e tutti), i metodi della
classe A, che siano o meno funzionali alla stessa; per quelli inutili e'
possibile dare un'implementazione fittizia, come un valore costante, oppure
un debug.print o un semplice commento; la signature corretta dei vari membri
viene proposta direttamente dall'IDE di VB, il quale aggiunge, nel primo
combo box della finestra di codice dei moduli di classe, la voce
corrispondente a A, oltre alle solite "(general)" e "Class", e nel secondo
combo tutte le property/metodi da implementare...
Per inciso nota, Andrea, che l'ereditarieta' di interfaccia "in cascata" non
funziona, se questo e' quello che intendevi nel primo messaggio; ovvero se B
implementa A e C implementa B, non e' vero che C implementa A... per
ottenere questo devi usare in C *due* istruzioni Implements, una per A e una
per B
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 Ciao
Ciao
Andrea

 Ehm... scusate la domanda, ma cosa è che funziona? :)
Torniamo alla prima domanda:
"Si, ma voglio dire, supponiamo di avere:
IInterfacciaBase ed IInterfacciaDerivata.
Posso dire a VB: "Oh, io voglio che IInterfacciaDerivata *erediti* tutte le
caratteristiche di IInterfacciaBase".
lo posso fare? Lo faccio con Implements?"
La risposta e': si, lo puoi fare e, si, e' sufficiente Implements
Quello che ti segnalavo e' che se vuoi avere una terza classe che erediti
(parliamo sempre e solo di ereditarieta' di interfaccia) IInterfacciaBase e
IInterfacciaDerivata non e' sufficiente
Implements IInterfacciaDerivata
ma ti serve
Implements IInterfacciaBase
Implements IInterfacciaDerivata
L'implementazione effettiva dei metodi di "base" e "derivata" va fatta in
questa terza classe
Se cerchi su MSDN, nella "Program,mer's Guide" di VB, il capitolo relativo
al polimorfismo trovi tutto quello che ti serve
