Autore Topic: ValueBox  (Letto 3830 volte)

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
ValueBox
« il: 18 Febbraio 2009, 00:49:15 »
Buona Sera a tutti,
Ho delle ValueBox con impostata la proprietà Number inserite in un form che all'avvio visualizzano di default uno zero, la mia domanda è: si può evitare che all'apertura lo zero venga visualizzato?
Prima di postare ho provato in vari modi (esempio: ValueBox.Clear(), ValueBox.Value = "") ma niente lo zero "non schioda".
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #1 il: 18 Febbraio 2009, 00:57:08 »
Purtroppo no...lo zero c'è e rimane...dovresti usare una textbox e formattarla per contenere solo numeri...

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: ValueBox
« Risposta #2 il: 18 Febbraio 2009, 01:05:27 »
Volevo evitare ciò usando la ValueBox per risparmiare qualche riga di codice, ma non conoscevo questa caratteristica, userò la TextBox come da te suggeritomi.
Grazie
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #3 il: 18 Febbraio 2009, 01:07:18 »
Spero di sbagliarmi così ti evito il lavoro più grosso....:D

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: ValueBox
« Risposta #4 il: 18 Febbraio 2009, 14:39:44 »
Domandina: perchè non vuoi che compaia lo zero?

Tieni conto che le varibili di base (es. Integer, Float, Long ecc.) non possono contenere valori null, e per questo vengono impostate per default a zero.
La ValueBox, segue questa logica, per cui ti presenta il valore di reset (0, appunto).
Al contrario, la TextBox, può contenere caratteri alfanumerici e, dato che è collegata ad un'oggetto String, può avere valori nulli.

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: ValueBox
« Risposta #5 il: 18 Febbraio 2009, 20:55:24 »
Perchè mi complica i controlli che devo effettuare tra di loro, un esempio stupido e che se cancello "involontariamente" lo zero mi va in errore il programma costringendomi a implementare ulteriori controlli per evitare che questa condizione non si verifichi in nessun caso.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: ValueBox
« Risposta #6 il: 18 Febbraio 2009, 23:32:52 »
Fin dai tempi in cui scrivevo programmini in BASIC sul Commodore 16 la mia prima preoccupazione è sempre stata quella di non dare _mai_ per scontato cosa l'utente inserisse alla richiesta di input da parte del programma, anche se l'utente ero io e basta.
Quindi ho sempre controllato a fondo ciò che veniva inserito, proprio per evitare che venissero passati dati senza senso o non corrispondenti ai tipi richiesti, anche in caso di scelte quasi obbligate.

Questo per dirti che la gestione dei dati è sempre importante, indipendentemente dal filtraggio che un controllo può o meno eseguire di suo.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: ValueBox
« Risposta #7 il: 19 Febbraio 2009, 01:19:21 »
Concordo pienamente con quello che dici, infatti la mia scelta era ricaduta proprio sulle ValueBox per gestire dei campi che devono contenere solo dati numerici è vista le loro caratteristiche mi sembrava quella giusta, per lo stesso motivo che tu hai citato, quello di evitare che l'utente possa inserire dei dati non corretti evitando di dover scrivere non poche righe di controllo che necessitano per esempio le TextBox.
Non che la cosa mi crei particolari problemi ma se si possono sfruttare delle funzionalità già presenti nelle proprietà degli oggetti che già svolgono quel particolare controllo che ti serve è sicuramente una comodità.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: ValueBox
« Risposta #8 il: 19 Febbraio 2009, 17:45:14 »
Ciao. Quick and dirty solution (una porcheria) per non vedere lo zero all'avvio:

Codice: [Seleziona]

 ' Gambas class file

PUBLIC bValueboxNumber AS Boolean

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()
   
  ValueBox1.Type = ValueBox.Time
       
END

PUBLIC SUB ValueBox1_KeyPress()
 
  IF NOT bValueboxNumber THEN
    ValueBox1.Type = ValueBox.Number
  ELSE
    RETURN
  ENDIF  
  bValueboxNumber = TRUE
 
END


In pratica, all'avvio imposti Valuebox come Type Time.
La prima volta che inserisci un valore diventa Type Number.
La soluzione è sporca perché ad ogni keypress c'è una verifica,
ma usando TextBox forse è ancora più arzigogolato. Ciao

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #9 il: 19 Febbraio 2009, 18:08:05 »
Che casino....secondo me fai prima a tenerti lo zero....

Offline ivosperi

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: ValueBox
« Risposta #10 il: 19 Febbraio 2009, 18:29:24 »
Ciao a tutti
Scusate l'intrusione, ma come ho già chiesto in un altro post non esiste la possibilità di controllare i tasti premuti all'interno di un textbox tipo:

Codice: [Seleziona]
Sub text_keypress (Index as Integer, KeyAscii as Integer)
  if KeyAscii >= 48 And KeyAscii <= 57 Then exit sub
  if KeyAscii = 8 Then exit sub
  if Chr$(KeyAscii) = "." Then exit sub
  KeyAscii = 0
End Sub


Grazie ciao

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #11 il: 19 Febbraio 2009, 18:34:06 »
Dove lo hai preso quell'esempio?alcuni passaggi mi risultano oscuri...sarà che ho fretta....boh...

Offline ivosperi

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: ValueBox
« Risposta #12 il: 19 Febbraio 2009, 18:38:35 »
Scusa, hai ragione, dimenticavo di dire che era scritto per vb

la procedura restituiva la variabile keyascii che identificava l'ultimo tasto premuto

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: ValueBox
« Risposta #13 il: 19 Febbraio 2009, 20:14:23 »
usa questo:
Codice: [Seleziona]


PUBLIC SUB TextBox1_KeyPress()

DIM keycode AS Integer

keycode = Key.Code
Label1.text = keycode

END



 


alla pressione di un tasto in textbox label1 visualizza il codice

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: ValueBox
« Risposta #14 il: 19 Febbraio 2009, 20:19:22 »
tieni però presente che utilizzare una costante integer per definire un tasto  non è consigliato dalla documentazione di gambas.

se lo utilizzi su un programma che userai solo tu va benissimo, ma se dovrai o vorrai che altri lo usino su sistemi diversi dal tuo potresti avere dei problemi

la guida recita:
Citazione
   Never compare the value of this property with a numeric constant, because the key codes may depend on the underlying toolkit.  Always use the constants defined in this class!