Autore Topic: [RISOLTO]inputbox maxlength  (Letto 1440 volte)

Offline naderit

  • Grande Gambero
  • ***
  • Post: 140
    • Mostra profilo
[RISOLTO]inputbox maxlength
« il: 02 Aprile 2016, 22:37:22 »
Buonasera è possibile impostare il numero di caratteri digitabili in una inputbox?
Grazie
« Ultima modifica: 08 Aprile 2016, 13:04:46 da naderit »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:inputbox maxlength
« Risposta #1 il: 03 Aprile 2016, 00:32:48 »
A mio parere, non essendo possibile accedere in qualche modo all'oggetto che costituisce l'area di immissione del testo della InputBox(), quel che chiedi potrebbe essere fatto solo agendo sui sorgenti.
Una cosa facilmente fattibile è quella di tagliare con la funzione Left() dalla stringa ritornata i caratteri digitati eccedenti il numero che si è consentito.    :-\

L'unica alternativa sembrerebbe essere quella di crearsi una Classe simil-InputBox da sé.
« Ultima modifica: 03 Aprile 2016, 15:00:33 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.244
  • Tonno verde
    • Mostra profilo
Re:inputbox maxlength
« Risposta #2 il: 03 Aprile 2016, 11:58:29 »
...
L'unica alternativa sembrerebbe essere quella di crearsi una Classe simil-InputBox da sé.

Sono d'accordo, potrebbe essere una buona occasione per approfondire il tuo studio dei componenti.  :D

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:inputbox maxlength
« Risposta #3 il: 04 Aprile 2016, 15:40:08 »
Si potrebbe creare un oggetto simile a InvBox, ed usare l'evento Change per monitorarlo e controllare quando si arriva al limite.
InputBox non permette nessun controllo su quello che si digita.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:inputbox maxlength
« Risposta #4 il: 04 Aprile 2016, 16:26:11 »
Si potrebbe creare un oggetto simile a InvBox, ed usare l'evento Change ...

Attenzione che rischiamo di confondere le idee, il suggerimento di vuott era, credo, quello di crearsi una finestra con una textbox o valuebox ecc.
Volendo partendo da li potrebbe poi farsi un componente magari sfruttando, come hai suggerito tu, proprio l'evento  Change del padre e del figlio ma dello stesso controllo, senza scomodarne altri.
È buttata li che non ho idea se possa funzionare.
 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:inputbox maxlength
« Risposta #5 il: 04 Aprile 2016, 16:30:26 »
il suggerimento di vuott era, credo, quello di crearsi una finestra con una textbox o valuebox ecc.
Exactement.
« 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.244
  • Tonno verde
    • Mostra profilo
Re:inputbox maxlength
« Risposta #6 il: 04 Aprile 2016, 16:44:29 »
Però ora che ci penso, l'idea di TopFuel di inserire nella finestra al posto della textbox un invbox è proprio carina l'approvo incondizionatamente  :D

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:inputbox maxlength
« Risposta #7 il: 04 Aprile 2016, 20:51:38 »
Infatti la mia idea era completamente diversa: creare un componente ex-novo similare ad InputBox ma che controlla la lunghezza di quanto digitato... ;D
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:inputbox maxlength
« Risposta #8 il: 04 Aprile 2016, 21:09:03 »
Ti consiglio già che ci sei di farlo meglio di InvBox in quanto fin'ora non si era mai sentito di una simil TextBox che non supporta il testo.
Già che siamo in tema a tutti quelli, fortunatamente pochi, sventurati che fidandosi di un imbratta codice come me hanno creato InvBox farebbero bene a cambiare così il codice della Sub Change:
Codice: [Seleziona]
Public Sub Tbox_Change()
  If Trim$($hTbox.Text) = "" Then
    $hTxt.Text = $sInvito
  Else
    $hTxt.Text = ""
  Endif 
  Me.Text = $hTbox.Text
  Raise Change 
End
e cioè aggiungere fra Endif e Raise:
Codice: [Seleziona]
Me.Text = $hTbox.Text
Se hanno la pretesa anche di leggere quanto viene scritto nel controllo  ;D
 :-[ Tra parentesi non so neanche se è il procedimento corretto ma sembra funzionare.
Si lo so di essere un tonno e infatti non l'ho mai nascosto.
Meno male che fra poco su Rai uno c'è Catarella e spero di imparare qualcosa.
 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline naderit

  • Grande Gambero
  • ***
  • Post: 140
    • Mostra profilo
Re:inputbox maxlength
« Risposta #9 il: 04 Aprile 2016, 22:15:20 »
Grazie a Tutti, vedo cosa posso inventarmi  :D :D con i vostri suggerimenti

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:inputbox maxlength
« Risposta #10 il: 04 Aprile 2016, 23:53:36 »
Ho provato ad aggiungere le 2 linee:
Codice: [Seleziona]
Me.Text = $hTbox.Text
Raise Change 

ma mi da errore dicendomi che Change non è un evento statico, senza funziona bene. Boh... :-\
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:inputbox maxlength
« Risposta #11 il: 05 Aprile 2016, 00:13:22 »
Ho provato ad aggiungere le 2 linee:
Codice: [Seleziona]
Me.Text = $hTbox.Text
Raise Change 

ma mi da errore dicendomi che Change non è un evento statico, senza funziona bene. Boh... :-\

Non so cosa dire a me funziona  :-\

Ma l'errore te lo da su Raise Change non su Me.text...  ???

Accidenti non ci capisco niente  :rolleyes:

Provo ad andare a dormire, magari domani...  :sleepy:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:inputbox maxlength
« Risposta #12 il: 05 Aprile 2016, 21:59:54 »
Svelato l'arcano: stavo usando la prima versione credendo di usare la seconda. ;D
Comunque la seconda versione mi funziona benissimo con o senza le 2 linee aggiuntive.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline naderit

  • Grande Gambero
  • ***
  • Post: 140
    • Mostra profilo
Re:inputbox maxlength
« Risposta #13 il: 07 Aprile 2016, 21:26:50 »
dunque, avrei risolto in questo modo:
Codice: [Seleziona]
Dim valore As String
  valore = InputBox("Nome Corso", "Nuova Tabella") 'inserimento dato"
If Len(valore) > 6 Then
  Message.Error("troppi caratteri", "OK")
Else
  Label1.Text = valore
Endif

non so se è molto elegante  ;D

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:inputbox maxlength
« Risposta #14 il: 07 Aprile 2016, 23:24:05 »
dunque, avrei risolto in questo modo:
...
non so se è molto elegante  ;D

Mmmmmm non direi,

noi ti suggerivamo una cosa del genere (vedi allegato)
poi vedi tu

 :ciao:
« Ultima modifica: 08 Aprile 2016, 11:56:57 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro