Gambas-it

Gambas3 => Programmazione => Topic aperto da: steci57 - 24 Ottobre 2019, 14:05:58

Titolo: decimali su una valuebox
Inserito da: steci57 - 24 Ottobre 2019, 14:05:58
Salve a tutti, essendo nuovo, spero sia la sezione giusta per il mio problema: vorrei impostare, in una valuebox, i decimali al millesimo, tre numeri decimali. ho provato cercando anche in internet ma il risultato è sempre lo stesso. Qualcuno ha un consiglio per risolvere questo piccolo, per voi più esperti, problema? grazie mille a chi vorrà aiutarmi.
Titolo: Re:decimali su una valuebox
Inserito da: Gianluigi - 24 Ottobre 2019, 16:14:47
In effetti avevi sbagliato posto.
Se ti va bene il numero arrotondato, puoi fare così:
Codice: [Seleziona]
ValueBox1.Value = Round(123.456789, -3)
Titolo: Re:decimali su una valuebox
Inserito da: vuott - 24 Ottobre 2019, 16:38:36
ho provato cercando anche in internet
Colgo l'occasione per segnalare alcuni siti utili.

Sito ufficiale di Gambas:
 - http://gambas.sourceforge.net/en/main.html

Wiki ufficiale di Gambas:
 - http://gambaswiki.org/wiki

Mailing List ufficiale di Gambas:
 - https://lists.gambas-basic.org/pipermail/user/

Forum, Wiki ed altri siti esistenti su Gambas:
 - https://gambas-es.org/
 - https://foro.gambas-es.org/forum.php
 - http://www.gambasforge.org/
 - http://www.gambas-club.de/index.php
 - https://forum.gambas.one/
 - http://www.gambaslinux.fr/
 - https://www.gambas-it.org/smf/
 - http://www.gambas-it.org/wiki/index.php?title=Pagina_principale
 - https://de.wikibooks.org/wiki/Gambas
 - https://gambas-buch.de/dwen/doku.php
 - http://www.gambasforge.org/wiki
 - http://sologambas.blogspot.it/p/indice.html
 - https://cursogambas.blogspot.com/p/indice.html
 - https://pigalore.miraheze.org/wiki/Main_Page
 - http://icculus.org/piga/

Testi e manuali esistenti:
 - http://gambaswiki.org/wiki/doc/book?nh&l=en
 - https://en.wikibooks.org/wiki/Programming_Gambas_from_Zip
 - https://wordpress.gambas.one/a-book-by-gerry-buzolic/
Titolo: Re:decimali su una valuebox
Inserito da: steci57 - 24 Ottobre 2019, 17:10:01
Chiedo scusa se ho sbagliato posto. Ringrazio per la risposta che comunque avevo già provato. Grazie dell'aiuto.
Titolo: Re:decimali su una valuebox
Inserito da: vuott - 24 Ottobre 2019, 17:12:56
Ringrazio per la risposta che comunque avevo già provato.
Scusami, quindi non hai ancora risolto ?
Titolo: Re:decimali su una valuebox
Inserito da: Gianluigi - 24 Ottobre 2019, 17:37:34
Chiedo scusa se ho sbagliato posto.
Nessun problema.
Qui puoi trovare una piccola guida al nostro forum:
https://www.gambas-it.org/smf/index.php?topic=7397.msg47180#new
Titolo: Re:decimali su una valuebox
Inserito da: steci57 - 26 Ottobre 2019, 17:02:16
Scusa Vuott se rispondo solo adesso, no purtroppo ancora sonoin alto mare, anche se non è importante miavrebbe fatto piacere non avere una sfilza di decimali. comunque sia grazie dell'aiuto.
thanks a lot
Titolo: Re:decimali su una valuebox
Inserito da: Gianluigi - 26 Ottobre 2019, 17:11:43
Scusa Vuott se rispondo solo adesso, no purtroppo ancora sonoin alto mare, anche se non è importante miavrebbe fatto piacere non avere una sfilza di decimali. comunque sia grazie dell'aiuto.
thanks a lot

Strano perché a me funziona.
Potresti dirmi che Gambas hai?
Nella IDE se premi sul menu "?" (Help) > Informazioni di sistema... si apre una finestra, agisci sul pulsante Copia e incolli qui fra i tag cancelletto.
Se non deve essere per forza un ValueBox puoi dare un'occhiata qui:
https://www.gambas-it.org/smf/index.php?topic=7281.msg46955#msg46955

magari ti ispira...

 :ciao:
Titolo: Re:decimali su una valuebox
Inserito da: vuott - 26 Ottobre 2019, 17:35:49
.....no purtroppo ancora sonoin alto mare....

Scusa, per permetterci di fare una verifica, puoi inserire le righe del tuo codice con le quali cerchi di ottenere il risultato da te desiderato ?
Titolo: Re:decimali su una valuebox
Inserito da: Gianluigi - 26 Ottobre 2019, 17:48:23
Vuott mi ha preceduto, stavo per farti la stessa richiesta.
Mentre gli rispondi potresti anche dire come vedi il valore in questo test allegato.
Io dopo aver premuto sul pulsante lo vedo così

 :ciao:
Titolo: Re:decimali su una valuebox
Inserito da: steci57 - 26 Ottobre 2019, 20:39:21
ciao gambas che uso è il 3.14.90
Titolo: Re:decimali su una valuebox
Inserito da: steci57 - 26 Ottobre 2019, 20:50:17
il codice che uso è questo;
Codice: [Seleziona]
  vb4.value = vb1.Value / Sqr(1 - (vb2.value / vb3.value) ^ 2)
  vb2.Foreground = Color.blue
  vb3.Foreground = Color.DarkBlue
  Dim vb4 As Float
  vb4.value = Round(123.456789, -3)
in pratica dovrebbe calcolarmi la differenza temporale fra volo e terrestre ad una velocità prossima a quella della luce. l'errore che mi da è che non è un oggetto nel form. ripeto non è determinante ai fini del calcolo che funziona benissimo , ma solo per una questione di semplicità. grazie ancora.
Titolo: Re:decimali su una valuebox
Inserito da: Gianluigi - 26 Ottobre 2019, 23:27:50
Ti consiglio di seguire i suggerimenti che ti sono stati dati, tutti, a partire da come si usa un forum.

Prova a scrivere il calcolo così:
Codice: [Seleziona]
vb4.value = Round(vb1.Value / Sqr(1 - (vb2.value / vb3.value) ^ 2), -3)
Che è poi il suggerimento che ti è stato dato subito, messo in pratica.
Titolo: Re:decimali su una valuebox
Inserito da: vuott - 26 Ottobre 2019, 23:34:39
Codice: [Seleziona]
 Dim vb4 As Float
  vb4.value = Round(123.456789, -3)
 
....l'errore che mi da è che non è un oggetto nel form...

Dichiari la variabile "vb4" quale tipo di dati nativo "Float",  ma poi la usi come fosse un Oggetto che dispone della proprietà ".Value".

:-X
Titolo: Re:decimali su una valuebox
Inserito da: Gianluigi - 26 Ottobre 2019, 23:44:20

Dichiari la variabile "vb4" quale tipo di dati nativo "Float",  ma poi la usi come fosse un Oggetto che dispone della proprietà ".Value".

:-X

Bravo vuott! Mi era sfuggito io davo per scontato che vb4, vb1, vb2 e vb3 fossero i  nomi di ValueBox.

Allora a questo punto non so che dire  :-\
Titolo: Re:decimali su una valuebox
Inserito da: vuott - 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)
Titolo: Re:decimali su una valuebox
Inserito da: Gianluigi - 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.
Titolo: risolto. decimali su una valuebox
Inserito da: steci57 - 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.
Titolo: Re:risolto. decimali su una valuebox
Inserito da: vuott - 27 Ottobre 2019, 19:38:10
...stando in silenzio.

Perchè "stando in silenzio" ?   ???
Il forum esiste per porre domande e per dare coerenti risposte.
Titolo: Re:decimali su una valuebox
Inserito da: kicco - 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: