Newsgroup: it.comp.lang.visual-basic
Titolo: Subclassing: questo sconosciuto.

Salve a tutti,
sento spessissimo parlare di subclasing ma il concetto mi sfugge:
qualcuno ha suggerimenti su qualche documento che lo spieghi,
ovviamente per VB 5.
Ciao a tutti.
Luca
Rimuovi _ABC dall'indirizzo per rispondere

 ovviamente per VB 5.
Non ti so indicare un testo o un help, ma per aiutarti ti consiglio di guardare sul Sito Comune (vedi qui sotto) il progetto
chiamato GradientBar.zip che contiene un esempio di Subclassing.
-- 
Hi, Ciao
Ettore                 By -MES-
http://freeweb.aspide.it/freeweb/ilmes
Il sito comune di programmatori VB
http://members.xoom.com/it_lang_vb

     Fine definizione :-))))))))))
Questo per il VB5, ma secondo me il subclassing dovrebbe essere una
potenzialita' NATIVA del linguaggio di programmazione, potenzialita' che
VB5 non ha, che permette ai controlli di maggiore priorita' di passare i
messaggi ricevuti ai controlli "figli", e cosi' via finche' qualcuno non
intercetta il messaggio. Alla fine il messaggio arriva alla form, quindi
se non se lo caga nessuno ancora, al modulo principale. Naturalmente
nella catena ognuno puo decidere di interrompere il percorso del
messaggio, oppure di processare il messaggio e farlo continuare
comunque, oppure ancora di "metterci le mani" modificandolo. (chi si
ricorda ToolBook?).
Non e' che in VB6 questa potenzialita' e' implementata finalmente?
Ciao

potenzialita' NATIVA del linguaggio di programmazione
Il subclassing è una potenzialità nativa del sistema operativo.

 Il subclassing č una potenzialitŕ nativa del sistema operativo.
Questo non e' in contraddizione con quello che ho detto io, ma una
condizione necessaria affinche' un linguaggio implementi il subclassing.
Ma in VB non e' implementato, tant'e' che dobbiamo "implementarcelo" da
soli con l'addressof etc.etc. .
Ciao

 soli con l'addressof etc.etc. .
Non e' implementato perche' e' sporchissimo.


 Questo per il VB5, ma secondo me il subclassing dovrebbe essere una



Se intendi "in VB non e' implementabile in modo naturale e veloce", sono
perfettamente d'accordo con te. E questo e' dovuto dal fatto che VB non
possiede costrutti del linguaggio adatti a questo scopo; cosa. invece. che'
e' presente in altri linguaggio, soprattutto nei linguaggi ad oggetti, come
C++ o Delphi (ricordatevi che VB NON e' un linguaggio ad oggetti).
Per cui il subclassing e' una potenzialita' nativa del SO, che e' difficile
(o scomoda, vedete voi) da implementare con VB.
Comunque, giusto per non piangere sullo strumento che usiamo (volenti o
nolenti = VB), anche nel caro vecchio C il subclassing si effettua in modo
quasi identico a come si implementa in VB5, ossia assegnando l'indirizzo di
una nuova funzione "event handler" alla finestra.
Come vedi, Roberto, in VB non siamo messi cosi' male (anche se era difficile
fare peggio!)
--
Roal Zanazzi
z...@iol.it

 fare peggio!)
Io pero' ho un problema che col cascading degli eventi non sarebbe
esistito: quando draggi qualcosa sulla finestra principale, l'evento
oledragdrop viene alzato ogni volta su un oggetto diverso della form
(quello su cui l'utente rilascia il mouse). E' un problema che si
amplifica quando ho una form con parecchi controlli....
Sarebbe bastata una proprieta' del tipo Form.olepreview=true.... (o
forse c'e' un sistema ma io non l'ho ancora scoperto?!!)
Ciao


--
Roal Zanazzi
z...@iol.it

 >Non e' implementato perche' e' sporchissimo.
Ribadisco: "Non e' implementato perche' e' sporchissimo"



OK, ottime argomentazioni su tutto.
Ma forse non hai capito il mio punto di vista.
Riflettiamo sull'affermazione: "il subclassing e' una potenzialita' nativa
del SO".
Io la interpreto cosi:
ogni caratteristica/funzionalita' di Windows (ANCHE se non creata
esplicitamente da M$) e' NATIVA del sistema;
per assurdo, secondo me, una potenzialita' nativa di un martello e' quella
di pestare le dita dell'utilizzatore (anche se il martello non e' nato per
quello scopo :-).
Come vedi, forse abbiamo interpretato in modo differente lo stesso concetto,
tutto qui.
Mi chiedi: "Se vuoi ti rivettorizzo tutti gli interrupt, "riformatto" la
memoria e sbanco Win95 da Win95. Anche questa la chiami "una potenzialità
nativa del sistema operativo"?"
E io ti rispondo, per come interpreto la definizione "potenzialita' nativa":
SI'.
Tutto quello che il SO ti permette di fare (nel bene o nel male), per me e'
una sua "potenzialita' nativa".
Forse il termine "nativa" ci ha fatto confondere...
Per il resto, quando dici che e' sporchissimo, non posso che pensarla come
te (sia per VB che per Windows).
E potrei anche aggiungere che per fare qualcosa di veramente complesso (con
qualsiasi linguaggio, sia VB, C/C++, Delphi o altro), il piu' delle volte e'
necessario usare "sporchi
trucchi". (Perche' senza il subclassing, la programmazione Windows sarebbe
veramente da masochisti).
--
Roal Zanazzi
z...@iol.it