Autore Topic: decimali su una valuebox  (Letto 2790 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:decimali su una valuebox
« Risposta #15 il: 27 Ottobre 2019, 02:01:12 »
....io davo per scontato che vb4, vb1, vb2 e vb3 fossero i  nomi di ValueBox.
In fondo non hai torto.
Temo che steci57 abbia prima dichiarato le variabili "vb2", "vb3" e "vb4" come Oggetti della Classe "ValueBox"; lo si nota da questa prima parte del suo codice postato:
 
Codice: [Seleziona]
 vb4.value = vb1.Value / Sqr(1 - (vb2.value / vb3.value) ^ 2)
  vb2.Foreground = Color.blue
  vb3.Foreground = Color.DarkBlue
e poi ha utilizzato l'identificatore di variabile "vb4" per dichiarare una variabile di tipo Float; è evidente in questa riga:
 
Codice: [Seleziona]
Dim vb4 As Float
ma poi ha ri-utilizzato quell'identificatore "vb4" come puntatore dell'Oggetto "ValueBox", forse pensando di poter fare un passo indietro.
Ciò è evidente qui:
 
Codice: [Seleziona]
vb4.value = Round(123.456789, -3)
« Ultima modifica: 27 Ottobre 2019, 02:02:15 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.158
  • Tonno verde
    • Mostra profilo
Re:decimali su una valuebox
« Risposta #16 il: 27 Ottobre 2019, 10:53:44 »
Vuott, se le cose stanno come hai intuito, allora suggerisco a steci57 di riscrivere il codice così:

Apri un nuovo progetto grafico QT Application e nominalo come ti pare.
Disegna nella FMain quattro ValueBox senza rinominarle le prime tre serviranno a contenere i valori per il calcolo la quarta restituirà il risultato della formula.
Sotto le valuebox disegna un Button1 e nella proprietà Text scrivi Calcola il valore.
Fai doppio click sul button e all'interno del codice FMain.class fra i marcatori Public Sub Button1_Click() e End scrivi questo codice:

Codice: [Seleziona]
ValueBox4.Value = Round(ValueBox1.Value / Sqr(1 - (ValueBox2.value / ValueBox3.value) ^ 2), -3)
Poi avvii il progetto, scrivi i corretti valori nelle prime tre valuebox e agisci sul pulsante cliccandoci sopra.

Occorre precisare che è inutile rinominare le ValueBox con vb1, vb2 ecc. tanto vale lasciare i nomi originali ValueBax1, ValueBox2 ecc. per rinominare con criterio occorre dare agli oggetti, ma anche alle variabili, nomi significativi e volendo usare anche i suggerimenti del linguaggio Gambas3 far precedere il nome significativo da un profisso (qui si va un po tutti in ordine sparso) ad esempio potresti definire il nome di una ValueBox che contiene un valore temporale con vbxTemp mentre una variabile di tipo Float che contiene un valore temporale la nominerai fTemp.

Esercitati sul progettino per rinominare le ValueBox e definire variabili a cui passare i valori per poi fare il calcolo e ripassarlo al quarto valuebox.
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline steci57

  • Gamberetto
  • *
  • Post: 8
    • Mostra profilo
risolto. decimali su una valuebox
« Risposta #17 il: 27 Ottobre 2019, 18:22:20 »
un grazie a Gianluigi e Vuott per l'aiuto datomi.
Andava solo piazzato nel codice del button. ancora grazie mille e vi seguirò stando in silenzio.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:risolto. decimali su una valuebox
« Risposta #18 il: 27 Ottobre 2019, 19:38:10 »
...stando in silenzio.

Perchè "stando in silenzio" ?   ???
Il forum esiste per porre domande e per dare coerenti risposte.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.703
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:decimali su una valuebox
« Risposta #19 il: 28 Ottobre 2019, 12:45:47 »
Citazione
Perchè "stando in silenzio" ?   ???
Il forum esiste per porre domande e per dare coerenti risposte.
Pienamente d'accordo!
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)