Newsgroup: it.comp.lang.visual-basic
Titolo: Misteri e magie di VB .NET

Si creino due Form, Form1 e Form2.
a) Nella Form1 si crei una RichTextBox1.
b) Nella Form2 si creino tre button Button1, Button2, Button3
e si inseriscano i seguenti eventi :
Button1_click :
   Form1.Richtext.Box1.Appendtext("Pippo")
Button2_click :
   Form1.Richtext.Box1.Appendtext("Pluto")
3) si faccia il run e si clicchi su Button1
Sulla RichTextBox1 apparirà la scritta : "PippoPlutoPaperino"
In compenso se cliccate su Button2 e Button3 non succederá nulla.
Bello vero ??
Niente applausi signori. E' solo una delle magie di cui VB .Net è capace
e che mi fanno girare tanto i coglioni.

Si creino due Form, Form1 e Form2.
a) Nella Form1 si crei una RichTextBox1.
b) Nella Form2 si creino tre button Button1, Button2, Button3
e si inseriscano i seguenti eventi :
Button1_click :
   Form1.RichTextBox1.AppendText("Pippo")
Button2_click :
   Form1.RichTextBox1.AppendText("Pluto")
Button2_click :
   Form1.RichTextBox1.AppendText("Paperino")
3) si faccia il run e si clicchi su Button1
Sulla RichTextBox1 apparirà la scritta : "PippoPlutoPaperino"
In compenso se cliccate su Button2 e Button3 non succederá nulla.
Bello vero ??
Niente applausi per me, signori!
E' solo una delle tante magie di cui VB .NET è capace


 e che mi fanno girare tanto i coglioni.
...
Mmm....
posti *esattamente* il codice che hai scritto?
Secondo me, cosi' a naso, qualche applauso te lo becchi :-) :-)

 e che mi fanno girare tanto i coglioni.
Secondo me il problema no è in VS ma chi c'è dietro la scrivania. Il codice
funziona perferttamente, se clicco su button1 appare solo pippo, o hai
usato degli handles a caso.
Il tuo codice è questo:
|     Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|         Form1.Show()
|     End Sub
| 
|     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
|         Form1.RichTextBox1.AppendText("Pippo")
|     End Sub
| 
|     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
|         Form1.RichTextBox1.AppendText("Pluto")
|     End Sub
| 
|     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
|         Form1.RichTextBox1.AppendText("Paperino")
|     End Sub

Il Wed, 04 Aug 2010 15:22:15 +0200, john ha scritto:
[cut]
Puoi postare il codice di tutto il Form2 (quello compreso tra Class e End
Class) ?
PaF

PaF schrieb:

eccolo :
Public Class Form2
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Button1.Click
         f_Main.RTB1.AppendText("Pippo")
     End Sub
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Button1.Click
         f_Main.RTB1.AppendText("Pluto")
     End Sub
     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Button1.Click
         f_Main.RTB1.AppendText("Paperino")
     End Sub
End Class
E doveroso fare le seguenti precisazioni :
in realtà appare, cliccando su Button1 appare  "PaperinoPlutoPippo", 
cioè in posizioni invertite rispetto alla numerazione dei Button
In 'normal mode'  RTB1 è con l'opzione  Right-to-Left  "True" e allora 
la scritta appare appoggiata al margine destro.
Se cambio in "False" la scritta appare appoggiata al margine sinistro.
Questo é tutto. E' un programmino di test con SOLAMENTE questo codice.

 Handles Button1.Click
ROTFL
Neanche un piccolo dubbio vero? Ah no, č .NET che č brutto e cattivo :-)
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Scarica "OpenOffice.org 3: Soluzioni a raccolta", molto piů di semplici 
FAQ! 
http://it.openoffice.org/doc/manuali/

 Secondo me il problema no è in VS ma chi c'è dietro la scrivania. 
questo accade nel 99% dei casi nel software implementation.
Tuttavia ci sono casi in cui il debugging diventa una cosa più di 
fortuna e di fantasia che non di tecnica.
Questo è uno di quelli.
Sai spiegare perchè tre costanti memorizzate, probabilmente attigue in 
memoria, ad un tratto si trovano ad essere 'attaccate' tutte e tre 
insieme e fuse in una sola costante ? Per quale recondito motivo ?
Cioè a me sembra che la memoria sia stata allocata a kakkio.
col pointer che segna all'inizio della prima costante
Non si tratta nemmeno di 'desincronizzazione' tra Forms, perchè ottengo 
lo stesso risultato anche se clicco 'solamente' su Button1.
QUindi, come si puo' generare automaticamente il risultato di Button2 e 
Button3 ?
Secondo me si trovano 'attaccati' in memoria.

 
1) ha quotato il codice di Andrea(Work) non il mio.
2) Handles Button1.Click è generato dal VB .NET. Perchè, è sbagliato ??
Cosa deve fare un programmatore, andare a domandarsi il perchè VB .NET 
crea un codice cazzone ???
3) Anche se fosse sbagliato, come potrebbe una cosa simile alterare il 
contenuto di una costante ??

Il Wed, 04 Aug 2010 16:47:19 +0200, john ha scritto:
[cut]
Non ti passa neanche per l'anticamera del cervello che per una cosa così
banale il problema che hai possa essere dovuto ad un tuo errore, invece di
sparare sul .NET Framework (che sicuramente avrà dei bug ma non certo così
macroscopici) ?
Tu hai fatto copia e incolla della definizione degli eventi dei bottoni,
senza capire cosa stavi facendo:
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Button1.Click
         f_Main.RTB1.AppendText("Pippo")
     End Sub
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Button1.Click
Guarda la clausula "Handles", in tutti i casi hai "Handles Button1.Click"
quindi hai attaccato l'evento click dei tuoi bottoni alla stessa
procedure...un errore veramente elementare, altro che farsi girare i
coglioni o pensare ad allocazioni di memoria alla "kakkio".
PaF

 contenuto di una costante ??
Quale costante?



Prima di farti girare i co****ni controlla bene quello che hai scritto 
nel codice.
Il copia/incolla del codice a volte porta a generare proprio questo tipo 
di errori... e non dare la colpa a Visual Studio!
Ciao, Vincenzo

 ha scritto nel messaggio 
news:i3buuf$t46$2...@nnrp.linuxfan.it...

Posso darti un consiglio? Datti una ripassata a eventi, delegates e la 
misteriosa parola chiave "HANDLES".
Poi probabilmente ti sarà chiaro che hai scritto (o copincollato) 3 routine 
associate allo stesso evento (Button1.Click), che vengono quindi richiamate 
in sequenza quando pigi Button1,
mentre agli eventi Click degli altri 2 bottoni non è associato nulla...
Bye
Raf
 

 ha scritto nel messaggio 
news:i3buuf$t46$2...@nnrp.linuxfan.it...

Semplicemente   lanci i tre eventi con lo stesso Button.....
Secondo me hai fatto un copia incolla  del codice    hai cambiato  Button1 
con button2 etc
ma non hai corretto l'handles 

 procedure...
Ho attaccato che cosa ?? Non DEVE essere possibile fare un errore così 
grossolano soprattutto agendo come si è sempre agiti usando il Visual 
basic anche di edizioni precedenti.
Mi dispiace. Non mi hai convinto per niente.

 Button1, evento che è associato a tutte e tre le procedure.
Adesso capisco quello che vuoi dire e quello che è successo.
Comunque è un comportamento alquanto stronzo quello del compiler.
Non dovrebbe permettere una ambiguità di questo genere.
Il mio errore è stato quello, per prigrizia, di copiare tout-court la 
procedure di Button1 tre volte e poi modificare solo Button2 e Button3 
dimenticandomi di cambiare anche la parte handles.
D'altra parte, un compilatore non dovrebbe permettere degli 'alias' 
(perchè di questo si tratta) di questo tipo, cioé di definire più volte 
Button1.Click con procedure diverse riferite a bottoni diversi.
mi dispiace ma questa io lo vedo come una 'imperfezione' del compilatore.
Almeno dovrebbe dare un Warning. Visto che dà warning per fregnacce 
molto meno importanti, come ad esempio se dichiari e non utilizzi mai 
una variabile...

 
E' proprio quello che è successo. Tuttavia mi sarei aspettato meno 
tolleranza dal compilatore.
Non esiste nessun valido motivo per VOLER fare quello che ho fatto io 
inavvertitamente.
Come dicevo, esso dà warning per cose molto più cretine.

 di errori... e non dare la colpa a Visual Studio!
Giustissimo. ma non dimentichiamo che anche se io mi incazzo qualche 
volta, il VB .NET è il mio ambiente di programmazione 'standard'.
Proveniente dal VB6 che uso dal 1998, da  ormai più di un anno uso il VB 
.NET giornalmente.
Piano piano imparerò a stare più attento ai copia-incolla.... :-)

 ha scritto nel messaggio 
news:i3c1tq$vc5$1...@nnrp.linuxfan.it...

Non ti da warning  probabilmente perchè  non è reato associare lo
stesso Handles  a controlli diversi.......In teoria  ( se serve nella 
realtà )
puoi associare lo stesso evento a 2 controlli completamente diversi.
( tipo un button e un combobox )


L'errore č di ragionamento.... Il vb 6  ti creava una funzione cosi :
Private Sub Command1_Click()
End Sub
Senza handle, tu potevi copia incolla e modificare solo quello
Qualcuno nell' NG  (non io ) potrebbe dirtii studia l'OOP
:-)


Battuto! Io lo uso dal 1995 (VB4), però con 
VB.NET
 ci lavoro ormai da 5 
anni (WinForm e tanto 
ASP.NET
) e non tornerei indietro per nessuna cosa 
al mondo.
Buon fine settimana
Vincenzo

MaXimo schrieb:

Allora se ho capito bene il Button_click è semplicemente un 'nome' della 
procedura  (che potrebbe essere anche Pincopallino) mentre invece 
l'evento a cui è associato è quello riportato nell' Handles. Giusto ??
Per cui io le subroutines invece di chiamarle Button1_click, e 
Button2_click potevo chamarle Pinco e Pallino, che poi avranno Handles 
Button1.click  giusto ??
Sto maledetto VB .NET di quel luminare non era ancora arrivato in 
libreria. Quando vado in centro la prossima volta non ritorno a casa 
senza averlo comprato.

 averlo comprato.
ma noooo  ci sono tantissime fonti e tutorial sul web

 Vincenzo
Vbrun300.dll    1993   ...proveniente da Hisoft Basic  Amiga   :-) 


Nemmeno io.
E poi rompersi le corna ed incazzarsi sul Visual Basic é più divertente 
che col C++.
:-)

 Non dovrebbe permettere una ambiguità di questo genere.
E perché, di grazia? Vuoi dire che un evento non dovrebbe poter lanciare 
più di una procedura? Non mi sembra una buona idea.
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Scarica "OpenOffice.org 3: Soluzioni a raccolta", molto più di semplici 
FAQ! 
http://it.openoffice.org/doc/manuali/

 Button1.click  giusto ??
Sì
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Scarica "OpenOffice.org 3: Soluzioni a raccolta", molto più di semplici 
FAQ! 
http://it.openoffice.org/doc/manuali/

 
Quello che confonde le idee è il nome che dsanno : Button1_click, che 
sembra identificare un evento invece di una procedura, e poi 
Button.Click per identificare l'evento.
Vabbe che uno è indicata come Public Sub, ma un poveraccio programmatore 
che vuole imparare ad assimilare i concetti, si confonde.
Vabbé. comunque ora ho assimilato il concetto.

 Mi dispiace. Non mi hai convinto per niente.
Spero che dopo aver letto la mia stessa risposta, data in modi diversi
dagli altri utenti, tu abbia capito l'errore.
Si può discutere se sia utile o meno un warning, ma il concetto di gestore
degli eventi ("handles") è una delle novità del .NET Framework dalla prima
versione 1.0 (2002) e nello stesso tempo uno dei cambi più importanti di
filosofia rispetto a VB6.
Ti do un consiglio, poi vedi tu: finché scrivi codice elementare, se hai
dei problemi al 99.99% è colpa tua. Prima di pensare a bug del framework
(piuttosto presuntuoso da parte tua) - perdendo tempo in arrabbiature
inutili - è meglio documentarsi.
PaF

 >> .NET giornalmente.
ROTFL e ci aggiungo anche 2 o 3 LOL
Sei un caso da clinica medica allora!
Se ....e ripeto se (l'appiglio per uscirne te lo fornisco...vedi come
sono buono!)...usi il 
vb.net
 GIORNALMENTE
beh forse un altro mestiere è più indicato!
Quando hai studiato i delegate...di seguito nel 99% dei libri ci sono
gli eventi !
Quindi...se usi GIORNALMENTE il VB.net (ecco che ti fornisco ancora la
via d'uscita)...e ancora DOPO UN ANNO non sai cosa fa handles
IPOTIZZO:
a) Sei albanese e studi su un libro di testo in egiziano...e quindi
sei bravo a fare quello che fai !!!
b) Ehm amico mio...ti sei accorto che leggi il libro alla
rovescia...ed è quello delle istruzioni del cellulare?
c) Ti fumi le ciabatte...dura da ammettere...ma ti droghi!
d) Hai 6 anni...mi rimangio tutto e mi inchino ad un così giovane
genio!Mi offro di farti lezioni gratis!...fammi parlare con i
genitori!
e) Sei un alieno del pianeta Omicron Perseo 7 e sei uno studioso di
paleo-linguaggi delle unità carbonio!
Saluti!
p.s.
Ovvio che te la sei cercata. Come tanti ti han detto sei come quello
che diceva "Fa schifo questo impianto di riscaldamento fa un freddo
cane"...e solo dopo si accorge di essere nudo ed aver dimenticato di
vestirsi!
Leggila con ironia ed ammetti
"Cari ragazzi ho fatto una cazzata...scusate il tono!"
p.p.s
Studia i delegate ed a ruota gli eventi
ad es.
http://msdn.microsoft.com/it-it/library/5t38cb9x(v=VS.80).aspx
http://msdn.microsoft.com/it-it/library/2z7x8ys3(v=VS.80).aspx
http://msdn.microsoft.com/it-it/library/stf7ebaz(v=VS.80).aspx
http://msdn.microsoft.com/it-it/library/6yyk8z93(v=VS.80).aspx
http://support.microsoft.com/kb/322188/it
p.p.p.s.
Sembrerà strano...ma io in 
vb.net
 li ho trovati un po ostici!
Spiegati in C# mi son parsi più facili da capire!
Sopratutto quelli multicast!

Sopratutto quelli multicast!
et voila'
 ''  Qualcuno nell' NG  (non io ) potrebbe dirtii studia l'OOP''
CVD :-)

 "Cari ragazzi ho fatto una cazzata...scusate il tono!"
Io non ho difficoltà ad ammettere che ogni tanto mi scappa una cazzata.
Infatti l'ho fatta, ci abbiamo riso sopra tutti (incluso te) e la vita 
va avanti.
Il mondo del software developing è pieno di cazzate giornaliere.

 
vabbè, per oggi ci siamo fatti delle risate.
Alla prossima cazzata, gente !!


Questa la quoto e mi ci specchio pure!
-- 
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/
 

[CUT]
Se tu invece che doppio click sul pulsante nel Designer, nella scheda 
proprietà (con il button evidenziato), clikki sul bottone con il fulmine 
(eventi), puoi scegliere il nome da assegnare della sub che gestisce 
l'Handle dell'evento che più ti aggrada.
Certo che se è generata automaticamente e il compilatore la chiamasse 
sjshsgsghsg (o un altro nome random) ci sarebbe qualche problema 
mnemonico da parte del programmatore....
EffeGi

 Il mondo del software developing è pieno di cazzate giornaliere.- zac
Grazie per i complimenti sullo sceneggiatore!
Leggi il mio blog che ogni tanto qualche post riuscito bene mi è
venuto!(...ed ogni tanto me ne è venuto anche qualcuno serio...ma
quelli li scansi!)
http://www.martek.it/dblog/
Piccolo inciso: sbagliano tutti sbaglio anch'io! Il modo migliore per
mandare in vacca tutto ...è sempre quello di dare la colpa a tutti!
Io riformulerei
Il mondo del software developing è pieno di cazzate giornaliere fatte
da singoli...talvolta qualcuno è così intelligente da correggerle!
perchè...
Riconoscimento dell'errore è il 50%(la parte più facile)
Risoluzione dell'errore l'altro 50%(ed è la parte più difficile perchè
bisogna essere disposti ad imparare ed a passare da inesperti)
Te lo dico perchè anche io mi accorgo che è difficile passare da
inesperti, soprattutto davanti a colleghi, si deve fare una violenza a
se stessi, "stare manzi",ed assimilare concetti da chi ne sà più di
te!
Io almeno ti faccio ridere!...spesso non è così!
Saluti
P.s.
...vado un ferie...non combinare cazzate mentro non ci sono eh!

 
però causerebbe un apprendimento più veloce. Perchè non rimarrebbe 
senzaltro 'sjshsgshsg'. Ci si domanderebbe il perchè di un nome così 
cretino e sarebbe cambiata immediatamente, obbligando ad informarsi 
sulla natura della cosa.     :-))

 mi dispiace ma questa io lo vedo come una 'imperfezione' del compilatore.
No, è che non c'hai capito una cippa.
 

 PaF
Quoto al 100%...
Per programmare in Visual Studio non ci vorrà la laurea ma un pochino di 
conoscenza
per quelle due righe di codice che volevi mettere in piedi bisogna averla. 
Sei stato
veramente indisponente e presentuoso. Si vede lontano un miglio che sei un 
dilettante e ti sei
atteggiato a grande guru del dotnet. Bisognerebbe sempre essere umili in 
questo mestiere altrimenti
meglio cambiare lavoro. 

 
dato che non sono in vacanza, posto anch'io in questo Ng, così per sfizio.
Dato che non si capisce esattamente a chi ti riferisci, penso che ti 
riferisca a colui al quale PaF ha risposto, cioé all'iniziatore del 
thread. Cioè io.
 >Si vede lontano un miglio che sei un dilettante
Nel .NET senzaltro. Del resto se non lo fossi non avrei bisogno di 
postare qui.
Per quanto riguarda la programmazione invece no. Ma ti risparmio il mio 
curriculum vitae.
 > ti sei atteggiato a grande guru del dotnet.
Io proprio MAI, non avrebbe senso ! stai sbagliando persona. Rileggi 
tutti i miei post.
 > Bisognerebbe sempre essere umili in
 > questo mestiere
più umile di così : rischiare di essere cazziato per ogni domanda che 
uno pone qui dentro, ....non so se esista
Le conosenze 'di base', cioé quelle minime, come devono essere ? Non 
basta provenire da 11 anni di VB6 ??
 >>altrimenti meglio cambiare lavoro.
Per me è troppo tardi. Io non lavoro più. Io mi diverto.
Peccato però che alcuni non hanno colto il filo di humour contenuto nel 
titolo stesso del thread.
Si vede che la fantasia del programmatore, nel risolvere le più varie 
situazioni, talvolta non è alla stessa altezza della fantasia nel 
percepire l'humour.
O alla percezione della psicologia dello scrivente. E sì che dopo un po' 
di tempo di apparizione in un NG uno si potrebbe fare più o meno una 
idea della personalità di chi scrive. io almeno me l'ho fatta di alcuni.
Peccato. Peccato veramente.
Ma come dicevo : sarà il caldo di questi giorni.