Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - creare una bussola
Forum - C# / VB.NET - creare una bussola - Pagina 19

Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ] Precedente | Prossimo
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 0:24
Venerdì, 05/04/2024
passiamo alle spiegazioni,
perche per i gradi usi

Codice sorgente - presumibilmente Plain Text

  1. Double.TryParse



mentre per il volume usi

Codice sorgente - presumibilmente Plain Text

  1. Integer.TryParse


non riceve sempre dei numeri?
spiegami gentilmente la differenza tra double.tryparse e integer.tryparse ma sopratutto cosa è questa funzione tryparse
grazie mille


PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1364
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 18:50
Venerdì, 05/04/2024
Sono in giro per aeroporti, non sempre posso rispondere.
Perché usi timer3 a che serve?

Testo quotato

Postato originariamente da nightwolf:

passiamo alle spiegazioni,
perche per i gradi usi

Codice sorgente - presumibilmente Plain Text

  1. Double.TryParse



mentre per il volume usi

Codice sorgente - presumibilmente Plain Text

  1. Integer.TryParse


non riceve sempre dei numeri?
spiegami gentilmente la differenza tra double.tryparse e integer.tryparse ma sopratutto cosa è questa funzione tryparse
grazie mille



Non si ricevono dei numeri si ricevono stringhe.
TrayParse tenta di interpretare una stringa come fosse un valore numerico e se ci riesce mette il valore convertito nella variabile assegnata, nel nostro caso avanzamento con restituzione di true.
Se non ci riesce, lascia invariato avanzamento e restituisce false.
Siccome Double.TryParse(valoriDivisi(0), avanzamento) è dentro ad un If il codice all'interno dell'If viene eseguito solo se la conversione è avvenuta, infatti se guardi sull'else c'è evidenziato:
Codice sorgente - presumibilmente C# / VB.NET

  1. Else
  2.        ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore " & valoriDivisi(0) & " non è un intero")
  3.    End If



inizialmente il valore dei gradi arrivava con il punto decimale
il punto veniva sostituito con la virgola
Codice sorgente - presumibilmente Plain Text

  1. valoriDivisi(0) = valoriDivisi(0).Replace(".", ",") ' se ci fosse il punto decimale viene sostituito con la virgola decimale


e
If Double.TryParse(valoriDivisi(0), avanzamento) Then convertiva se possibile la stringa ricevuta in double, che poi finendo in avanzamento, dichiarato come integer, veniva arrotondato all'intero più vicino.

ora che arrivano i gradi senza punto decimale la riga:
valoriDivisi(0) = valoriDivisi(0).Replace(".", ",") non serve più
e Double.TryParse può essere Integer.TryParse

Ultima modifica effettuata da Carlo il 05/04/2024 alle 18:53


in programmazione tutto è permesso
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:22
Venerdì, 05/04/2024
Ma scusa vuoi spiegata dal forum la differenza tra Integer e Double?

Io non capisco in cosa si e' trasformato questo forum. Una domanda da centinaia di post e ora comincia un corso di base del linguaggio?

Ora capisco perche' questo forum e' praticamente abbandonato...

Ultima modifica effettuata da il 06/04/2024 alle 2:45
PM Quote
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 0:47
Sabato, 06/04/2024
Testo quotato

Postato originariamente da Carlo:

Sono in giro per aeroporti, non sempre posso rispondere.
Perché usi timer3 a che serve?

Testo quotato

Postato originariamente da nightwolf:

passiamo alle spiegazioni,
perche per i gradi usi

Codice sorgente - presumibilmente Plain Text

  1. Double.TryParse



mentre per il volume usi

Codice sorgente - presumibilmente Plain Text

  1. Integer.TryParse


non riceve sempre dei numeri?
spiegami gentilmente la differenza tra double.tryparse e integer.tryparse ma sopratutto cosa è questa funzione tryparse
grazie mille



Non si ricevono dei numeri si ricevono stringhe.
TrayParse tenta di interpretare una stringa come fosse un valore numerico e se ci riesce mette il valore convertito nella variabile assegnata, nel nostro caso avanzamento con restituzione di true.
Se non ci riesce, lascia invariato avanzamento e restituisce false.
Siccome Double.TryParse(valoriDivisi(0), avanzamento) è dentro ad un If il codice all'interno dell'If viene eseguito solo se la conversione è avvenuta, infatti se guardi sull'else c'è evidenziato:
Codice sorgente - presumibilmente C# / VB.NET

  1. Else
  2.        ListBox1.Items.Add(DateTime.Now.ToLongTimeString & " - Elaborato = Errore " & valoriDivisi(0) & " non è un intero")
  3.    End If



inizialmente il valore dei gradi arrivava con il punto decimale
il punto veniva sostituito con la virgola
Codice sorgente - presumibilmente Plain Text

  1. valoriDivisi(0) = valoriDivisi(0).Replace(".", ",") ' se ci fosse il punto decimale viene sostituito con la virgola decimale


e
If Double.TryParse(valoriDivisi(0), avanzamento) Then convertiva se possibile la stringa ricevuta in double, che poi finendo in avanzamento, dichiarato come integer, veniva arrotondato all'intero più vicino.

ora che arrivano i gradi senza punto decimale la riga:
valoriDivisi(0) = valoriDivisi(0).Replace(".", ",") non serve più
e Double.TryParse può essere Integer.TryParse



grazie mille per la spiegazione, timer3 lo uso perchè nella grafica il controllo del volume non è visibile, mentre con timer3 lo rendo visibile qualdo lo utilizzo. con questo codice
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
  2.         principale.Volume_control1.Visible = True
  3.         principale.lb_volume.Visible = True
  4.         Label1.Visible = True
  5.         Volume_control1.Visible = True
  6.         lb_volume.Visible = True
  7.         video.Volume_control1.Visible = True
  8.         video.lb_volume.Visible = True
  9.         Timer4.Start()
  10.     End Sub
  11.  
  12.     Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick
  13.         Timer3.Stop()
  14.         principale.Volume_control1.Visible = False
  15.         principale.lb_volume.Visible = False
  16.         Label1.Visible = False
  17.         Volume_control1.Visible = False
  18.         lb_volume.Visible = False
  19.  
  20.     End Sub


timer3 ha come interval 100
mentre timer4 ha come interval 3000
questo è solo per aspetto grafico perchè non mi piace vedere il controllo del volume sempre

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1364
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 7:14
Sabato, 06/04/2024
Testo quotato

Postato originariamente da nightwolf:
grazie mille per la spiegazione, timer3 lo uso perchè nella grafica il controllo del volume non è visibile, mentre con timer3 lo rendo visibile qualdo lo utilizzo. con questo codice
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
  2.         principale.Volume_control1.Visible = True
  3.         principale.lb_volume.Visible = True
  4.         Label1.Visible = True
  5.         Volume_control1.Visible = True
  6.         lb_volume.Visible = True
  7.         video.Volume_control1.Visible = True
  8.         video.lb_volume.Visible = True
  9.         Timer4.Start()
  10.     End Sub
  11.  
  12.     Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick
  13.         Timer3.Stop()
  14.         principale.Volume_control1.Visible = False
  15.         principale.lb_volume.Visible = False
  16.         Label1.Visible = False
  17.         Volume_control1.Visible = False
  18.         lb_volume.Visible = False
  19.  
  20.     End Sub


timer3 ha come interval 100
mentre timer4 ha come interval 3000
questo è solo per aspetto grafico perchè non mi piace vedere il controllo del volume sempre


Perché pensi che possa essere associato ai salti di volume???


in programmazione tutto è permesso
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1364
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 7:17
Sabato, 06/04/2024
Testo quotato

Postato originariamente da nightwolf:

Stavo pensando, ma se da arduino inviassi i dati del potenziometro solamente quando lo aziono, per evitare il rimbalzo del timer3, cambierebbe qualcosa a livello di codice?  


Se da arduino ricevi ripetutamente sempre lo stesso valore di volume, perché dovrebbe causare dei rimbalzi??


in programmazione tutto è permesso
PM Quote
Avatar
nightwolf (Normal User)
Pro


Messaggi: 149
Iscritto: 14/09/2010

Segnala al moderatore
Postato alle 9:50
Sabato, 06/04/2024
Beh!, credo che dipenda da quello, dal timer3, è l unico associato alla visualizzazione di controll_volume1, se tolgo timer3 il controllo non si vede, infatti se non viene attivato timer3, il control_volume1 non si vede. È l unica spiegazio e che posso dare.

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1364
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 12:35
Sabato, 06/04/2024
Testo quotato

Postato originariamente da nightwolf:

Beh!, credo che dipenda da quello, dal timer3, è l unico associato alla visualizzazione di controll_volume1, se tolgo timer3 il controllo non si vede, infatti se non viene attivato timer3, il control_volume1 non si vede. È l unica spiegazio e che posso dare.


dipende da cosa significa rimbalzi.
se il controllo volume appare e scompare, si.
se il volume si alza e abbassa in modo non voluto allora no.

Ultima modifica effettuata da Carlo il 06/04/2024 alle 21:33


in programmazione tutto è permesso
PM Quote
Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ] Precedente | Prossimo