• In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 12 di 12

Discussione: Aiuto per progrmma VB

Cambio titolo
  1. #1
    L'avvelenato L'avatar di netstorm
    Registrato il
    07-03
    Località
    Aachen
    Messaggi
    6.345

    Aiuto per progrmma VB

    Ho creato un progrmma in VB dove appare una tavola periodica degli elementi, tu clicchi sull'elemento e lui somma in una TextBox tutti i valori dei pulsanti premuti.
    solo che ciò è troppo lungo con formule Tipo C6H12O6, quindi vorrei fare una TextBox dove scrivi la formula ed il programma calcola il peso molecolare, basandosi sui valori già inseriti.

    Chi mi dà una mano?


    P.S. Se volete il programma o il sorgente mandatemi un mp o scrivetelo in un post e appena sono on-line lo mando .

  2. #2
    Ex ***** VIPz Estathé L'avatar di nicjedi
    Registrato il
    12-02
    Località
    non vivo
    Messaggi
    16.148
    Beh, se non posti il listato del programma è difficile venirci a capo, cmq..
    Se hai impostato il tutto con un oggetto che compie la "somma" del peso molecolare, basta che in una textbox scrivi la formula, poi con un metodo leggi ogni lettera del testo e le fai passare man mano nell'oggetto che "somma"

    Ciao

    Nicola
    "La violenza è l'ultimo rifugio degli incapaci"
    "Non lasciare mai che la morale ti impedisca di fare la cosa giusta"
    "La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta."
    "fare molte cose alla volta significa non farne bene nessuna"


  3. #3
    L'avvelenato L'avatar di netstorm
    Registrato il
    07-03
    Località
    Aachen
    Messaggi
    6.345
    nicjedi

    poi con un metodo leggi ogni lettera del testo e le fai passare man mano nell'oggetto che "somma"
    è lì il difficile! comunque posto il codice.

  4. #4
    L'avvelenato L'avatar di netstorm
    Registrato il
    07-03
    Località
    Aachen
    Messaggi
    6.345
    Form 1

    Dim Command(0 To 111) As Double

    Private Sub Command1_Click(Index As Integer)

    On Error GoTo Errore

    If Command(Index) = 0 Then GoTo Errore

    Command3.Enabled = True

    Text1.Text = CStr(Text1.Text + (Command(Index)))

    If Index < 103 Then
    Elemento(Index) = Elemento(Index) + 1
    End If

    Exit Sub

    Errore:
    MsgBox "Il peso atomico dell'elemento non è stato inserito nel programma.", vbInformation, "Errore:" 'Cambiare la caption della MsgBox'
    End Sub


    Private Sub Command2_Click()
    For abc = 0 To 111
    Elemento(abc) = 0
    Next abc
    Command3.Enabled = False
    Text1.Text = 0
    End Sub

    Private Sub Command3_Click()
    Form2.Show 1
    End Sub

    Private Sub Command4_Click()
    Label3(0).Visible = False
    Label3(1).Visible = False
    Label3(2).Visible = False
    Label3(3).Visible = False
    Label3(4).Visible = False
    Label3(5).Visible = False
    Label3(6).Visible = False
    Label3(7).Visible = False

    Label4(0).Visible = False
    Label4(1).Visible = False
    Label4(2).Visible = False
    Label4(3).Visible = False
    Label4(4).Visible = False
    Label4(5).Visible = False

    Label5(0).Visible = False
    Label5(1).Visible = False
    Label5(2).Visible = False
    Label5(3).Visible = False
    Label5(4).Visible = False
    Label5(5).Visible = False
    Label5(6).Visible = False

    Shape1(0).Visible = False
    Shape1(1).Visible = False
    Shape1(2).Visible = False
    Shape1(3).Visible = False
    Shape1(4).Visible = False
    Shape1(5).Visible = False

    Command5.Visible = True
    Command4.Visible = False

    End Sub

    Private Sub Command5_Click()
    Label3(0).Visible = True
    Label3(1).Visible = True
    Label3(2).Visible = True
    Label3(3).Visible = True
    Label3(4).Visible = True
    Label3(5).Visible = True
    Label3(6).Visible = True
    Label3(7).Visible = True

    Label4(0).Visible = True
    Label4(1).Visible = True
    Label4(2).Visible = True
    Label4(3).Visible = True
    Label4(4).Visible = True
    Label4(5).Visible = True

    Label5(0).Visible = True
    Label5(1).Visible = True
    Label5(2).Visible = True
    Label5(3).Visible = True
    Label5(4).Visible = True
    Label5(5).Visible = True
    Label5(6).Visible = True

    Shape1(0).Visible = True
    Shape1(1).Visible = True
    Shape1(2).Visible = True
    Shape1(3).Visible = True
    Shape1(4).Visible = True
    Shape1(5).Visible = True

    Command5.Visible = False
    Command4.Visible = True
    End Sub

    Private Sub Command6_Click()
    GoTo Credits

    Exit Sub
    Credits:
    MsgBox "Michele T., MetalLord, Simonko,#irc.azzurra.hackerjournal,GR Forum", , "Credits:"
    Command6.Visible = False
    End Sub

    Private Sub Form_Load()

    Command(0) = 1.00797
    Command(1) = 4.0026
    Command(2) = 6.939
    Command(3) = 9.0122
    Command(4) = 10.811
    Command(5) = 12.01115
    Command(6) = 14.0067
    Command(7) = 15.9994
    Command(8) = 18.9984
    Command(9) = 20.183
    Command(10) = 22.9898
    Command(11) = 24.312
    Command(12) = 26.9815
    Command(13) = 28.086
    Command(14) = 30.9738
    Command(15) = 32.064
    Command(16) = 35.453
    Command(17) = 39.948
    Command(18) = 39.102
    Command(19) = 40.08
    Command(20) = 44.956
    Command(21) = 47.9
    Command(22) = 50.942
    Command(23) = 51.996
    Command(24) = 54.938
    Command(25) = 55.847
    Command(26) = 58.933
    Command(27) = 58.71
    Command(28) = 63.54
    Command(29) = 65.37
    Command(30) = 69.72
    Command(31) = 72.59
    Command(32) = 74.922
    Command(33) = 78.96
    Command(34) = 79.909
    Command(35) = 83.8
    Command(36) = 85.47
    Command(37) = 87.62
    Command(38) = 88.905
    Command(39) = 91.22
    Command(40) = 92.906
    Command(41) = 95.94
    Command(42) = 98
    Command(43) = 101.07
    Command(44) = 102.905
    Command(45) = 106.4
    Command(46) = 107.87
    Command(47) = 112.4
    Command(48) = 114.82
    Command(49) = 118.69
    Command(50) = 121.75
    Command(51) = 127.6
    Command(52) = 126.904
    Command(53) = 131.3
    Command(54) = 132.905
    Command(55) = 137.34
    Command(56) = 138.91
    Command(57) = 140.12
    Command(58) = 140.907
    Command(59) = 144.24
    Command(60) = 147
    Command(61) = 150.35
    Command(62) = 151.96
    Command(63) = 157.25
    Command(64) = 158.924
    Command(65) = 162.5
    Command(66) = 164.93
    Command(67) = 167.26
    Command(68) = 168.934
    Command(69) = 173.04
    Command(70) = 174.97
    Command(71) = 178.49
    Command(72) = 180.948
    Command(73) = 183.85
    Command(74) = 186.2
    Command(75) = 190.2
    Command(76) = 192.2
    Command(77) = 195.09
    Command(78) = 196.967
    Command(79) = 200.59
    Command(80) = 204.37
    Command(81) = 207.19
    Command(82) = 208.98
    Command(83) = 210
    Command(84) = 210
    Command(85) = 222
    Command(86) = 223
    Command(87) = 226
    Command(88) = 227
    Command(89) = 232.038
    Command(90) = 231
    Command(91) = 238.03
    Command(92) = 237
    Command(93) = 242
    Command(94) = 243
    Command(95) = 247
    Command(96) = 247
    Command(97) = 251
    Command(98) = 254
    Command(99) = 253
    Command(100) = 256
    Command(101) = 254
    Command(102) = 257
    Command(103) = 0
    Command(104) = 0
    Command(105) = 0
    Command(106) = 0
    Command(107) = 0
    Command(108) = 0
    Command(109) = 0
    Command(110) = 0
    Command(111) = 0
    End Sub

    Private Sub Image1_Click()

    End Sub

    Private Sub Label7_Click()
    Command6.Visible = True
    End Sub


    Modulo

    Public Elemento(111) As Integer

    Form 2

    Dim Riga As Integer

    Private Sub Command1_Click()
    Unload Form2
    End Sub

    Private Sub Form_Load()
    Riga = 0
    Tabella.Col = 0
    Tabella.Row = 0
    Tabella.Text = "Elemento"
    Tabella.Col = 1
    Tabella.Text = "N° atomi"
    For abcd = 0 To 111
    If Elemento(abcd) > 0 Then
    Riga = Riga + 1
    Tabella.Rows = Tabella.Rows + 1
    Tabella.Row = Riga
    Tabella.Col = 0
    Tabella.Text = Form1.Command1(abcd).Caption
    Tabella.Col = 1
    Tabella.Text = Str(Elemento(abcd))
    End If
    Next abcd
    Tabella.FixedRows = 1
    End Sub

    Fine

    Premetto che non ho fatto tutto io, soprattutto per il form2 mi sono fatto aiutare da un amico!

    P.S. è ancora molto da perfezionare!

  5. #5
    Ex ***** VIPz Estathé L'avatar di nicjedi
    Registrato il
    12-02
    Località
    non vivo
    Messaggi
    16.148
    Allora, il problema è questo, il leggere carattere per carattere non è difficile, ma bisognerebbe associare ad ogni simbolo chimico il suo peso...mentre nel programma che hai fatto questo non avviene, perché tu dai direttamente i valori ai bottoni. Dovresti invece creare una matrice, dove nella prima colonna c'è il numero dell'elemento, nella seconda la lettera, e nella terza il peso atomico.

    Fatto questo, puoi usare il metodo Keydown della textbox per leggere ogni carattere che inserisce man mano.
    nel metodo KeyDown dovresti inserire un controllo, che controlla che se è una lettera corrisponda ad un simbolo chimico

    Poi mandi il tutto ad una subroutine, che man mano crea il peso molecolare.
    Questa subroutine ha come parametro il carattere inserito, e utilizza due variabili globali, una sarà il peso molecolare, l'altra il peso atomico del precedente elemento inserito.
    La sub funziona così:
    - controlla se è numero o lettera
    - se è numero controlla che il peso molecolare non sia 0 (per evitare che uno scriva una formula che parte con un numero)
    - se numero, prende il valore nella variabile "peso atomico", lo moltiplica per il numero, e lo aggiunge al peso molecolare
    - se è lettera, ci sono due casi:
    1- siccome molti elementi hanno il simbolo composto da 2 lettere, devi controllare che la lettera precedente non fosse la prima parte del simbolo chimico, nel qual caso devi cambiare il valore in "peso atomico", senza inserirlo nel "peso molecolare". Per controllare la lettera precedente non devi fare altro che controllare il valore di "peso atomico", e ricavare dalla matrice a quale lettera corrisponde
    2- se la lettera corrisponde ad un'altro simbolo chimico, aggiungi il valore presente nella variabile "peso atomico" al "peso molecolare", e cambi il valore di "peso atomico" con quello della lettera appena digitata.

    Spero non sia troppo complicato, ma è facile da spiegare a parole, meno da scrivere

    Ciao

    Nicola
    "La violenza è l'ultimo rifugio degli incapaci"
    "Non lasciare mai che la morale ti impedisca di fare la cosa giusta"
    "La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta."
    "fare molte cose alla volta significa non farne bene nessuna"


  6. #6
    L'avvelenato L'avatar di netstorm
    Registrato il
    07-03
    Località
    Aachen
    Messaggi
    6.345
    nicjedi

    Allora, il problema è questo, il leggere carattere per carattere non è difficile, ma bisognerebbe associare ad ogni simbolo chimico il suo peso...mentre nel programma che hai fatto questo non avviene, perché tu dai direttamente i valori ai bottoni. Dovresti invece creare una matrice, dove nella prima colonna c'è il numero dell'elemento, nella seconda la lettera, e nella terza il peso atomico.

    Fatto questo, puoi usare il metodo Keydown della textbox per leggere ogni carattere che inserisce man mano.
    nel metodo KeyDown dovresti inserire un controllo, che controlla che se è una lettera corrisponda ad un simbolo chimico

    Poi mandi il tutto ad una subroutine, che man mano crea il peso molecolare.
    Questa subroutine ha come parametro il carattere inserito, e utilizza due variabili globali, una sarà il peso molecolare, l'altra il peso atomico del precedente elemento inserito.
    La sub funziona così:
    - controlla se è numero o lettera
    - se è numero controlla che il peso molecolare non sia 0 (per evitare che uno scriva una formula che parte con un numero)
    - se numero, prende il valore nella variabile "peso atomico", lo moltiplica per il numero, e lo aggiunge al peso molecolare
    - se è lettera, ci sono due casi:
    1- siccome molti elementi hanno il simbolo composto da 2 lettere, devi controllare che la lettera precedente non fosse la prima parte del simbolo chimico, nel qual caso devi cambiare il valore in "peso atomico", senza inserirlo nel "peso molecolare". Per controllare la lettera precedente non devi fare altro che controllare il valore di "peso atomico", e ricavare dalla matrice a quale lettera corrisponde
    2- se la lettera corrisponde ad un'altro simbolo chimico, aggiungi il valore presente nella variabile "peso atomico" al "peso molecolare", e cambi il valore di "peso atomico" con quello della lettera appena digitata.

    Spero non sia troppo complicato, ma è facile da spiegare a parole, meno da scrivere

    Ciao

    Nicola
    Azz! Purtroppo credo sia troppo complesso, daltronde è il mio secondo programma e quindi non so far molto!

    Io ero arrivato a capire che dovevo fare una TextBox ed in qualche modo delimitare gli elementi basandomi sulle lettere maiuscole e minuscole ed i numeri, il programma confronta i caratteri dalla maiuscola alla minuscola o al numero con le caption dei command.

    Ciao

  7. #7
    Ex ***** VIPz Estathé L'avatar di nicjedi
    Registrato il
    12-02
    Località
    non vivo
    Messaggi
    16.148
    netstorm

    Azz! Purtroppo credo sia troppo complesso, daltronde è il mio secondo programma e quindi non so far molto!

    Io ero arrivato a capire che dovevo fare una TextBox ed in qualche modo delimitare gli elementi basandomi sulle lettere maiuscole e minuscole ed i numeri, il programma confronta i caratteri dalla maiuscola alla minuscola o al numero con le caption dei command.

    Ciao
    Ehm..non saprei come descrivertelo più semplicemente, perché è proprio un po' difficile...

    Ciao

    Nicola
    "La violenza è l'ultimo rifugio degli incapaci"
    "Non lasciare mai che la morale ti impedisca di fare la cosa giusta"
    "La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta."
    "fare molte cose alla volta significa non farne bene nessuna"


  8. #8
    Utente L'avatar di Mozart489
    Registrato il
    03-04
    Messaggi
    46
    se fate il programma in questo modo, impazzite. Secondo me la via più semplice è quella di calcolare la massa molecolare a partire dalle masse atomiche, previamente scritti o in un file, o in un Select Case. Ogniqualvolta l'utente preme il pulsante di una sostanza, aggiunge direttamente in un altra textbox il valore della sua massa atomica.

    Scrivere peso atomico, per quello che ho capito, nel vostro caso è sbagliato. Il peso atomico si calcola facendo massa atomica * g (costante di gravitazione terrestre = 9,8). I valori che trovate nella tavola periodica sono le Masse atomiche.
    Ultima modifica di Mozart489; 7-03-2004 alle 18:07:07
    PC: Olivetti Philos COLOR 46
    --------------------------------------------
    Processore: Intel™ 486 con 128 kbyte di cache
    Scheda Grafica: Intel™ 512 kbyte di memoria
    Memoria: 8 Mbyte
    CD: Non Presente
    Schermo: LCD 256 colori 640x480
    Scheda Audio: Beep di sistema
    Alimentatore: A manovella
    Accensione: Previa esclusione del BIOS
    --------------------------------------------

  9. #9
    L'avvelenato L'avatar di netstorm
    Registrato il
    07-03
    Località
    Aachen
    Messaggi
    6.345
    Mozart489

    se fate il programma in questo modo, impazzite. Secondo me la via più semplice è quella di calcolare la massa molecolare a partire dalle masse atomiche, previamente scritti o in un file, o in un Select Case. Ogniqualvolta l'utente preme il pulsante di una sostanza, aggiunge direttamente in un altra textbox il valore della sua massa atomica.

    Scrivere peso atomico, per quello che ho capito, nel vostro caso è sbagliato. Il peso atomico si calcola facendo massa atomica * g (costante di gravitazione terrestre = 9,8). I valori che trovate nella tavola periodica sono le Masse atomiche.
    Il programma funziona già "COSI'", nel senso che tu premi un tasto e somma il PESO MOLECOLARE dell'elemanto in una text box, non voglio calcolare nulla, voglio solo che faccia lo stesso inserendo una formula in una text box, io inserisco H2= in un text box ed in un'altra fa apparire 18,.... u.m.a.

  10. #10
    Rivoluzionario L'avatar di Gendo Ikari
    Registrato il
    03-03
    Località
    Neo Tokyo 3
    Messaggi
    6.197
    CONSIGLIONE PER TUTTI I PROGRAMMI

    E' consigliabile, invece di utilizzare nomi assurdi, come Command1, Label34 etc... creare nomi con un significato.
    In genere le prime 3 lettere sono l'abbreviazione di che cosa è l'oggetto: command: "cmd" - label: "lbl" o "lab" e così via... Le altre lettere utilizzare un riferimento di significato. Ad esempio: "lblNome" o "cmdOk".
    Questo è solo un consiglio per programmare meglio.
    Viva l'Itaglia!

  11. #11
    Ex ***** VIPz Estathé L'avatar di nicjedi
    Registrato il
    12-02
    Località
    non vivo
    Messaggi
    16.148
    Gendo Ikari

    CONSIGLIONE PER TUTTI I PROGRAMMI

    E' consigliabile, invece di utilizzare nomi assurdi, come Command1, Label34 etc... creare nomi con un significato.
    In genere le prime 3 lettere sono l'abbreviazione di che cosa è l'oggetto: command: "cmd" - label: "lbl" o "lab" e così via... Le altre lettere utilizzare un riferimento di significato. Ad esempio: "lblNome" o "cmdOk".
    Questo è solo un consiglio per programmare meglio.
    Ovvio, ma non volevo demoralizzarlo ancora di più...

    Ciao

    Nicola
    "La violenza è l'ultimo rifugio degli incapaci"
    "Non lasciare mai che la morale ti impedisca di fare la cosa giusta"
    "La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta."
    "fare molte cose alla volta significa non farne bene nessuna"


  12. #12
    L'avvelenato L'avatar di netstorm
    Registrato il
    07-03
    Località
    Aachen
    Messaggi
    6.345
    nicjedi

    Ovvio, ma non volevo demoralizzarlo ancora di più...

    Ciao

    Nicola
    Perchè mi dovrei demoralizzare?

    Grazie Gendo Ikari per il consiglio che però avevo già letto su un libro, e purtroppo non ho mai messo in pratica.....

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •