Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: TextBox ed Array

  1. #1
    Utente di HTML.it L'avatar di fungo
    Registrato dal
    Jul 2000
    residenza
    Caorle
    Messaggi
    725

    TextBox ed Array

    Ciao a buona giornata a tutto il fourm, ripropongo ancora lo stesso codice perchè non ho trovato ancora una soluzione.


    Private Sub txtFrmCerca_KeyPress(KeyAscii As Integer)
    ReDim Preserve A(conta)
    A(conta) = Chr$(KeyAscii)
    conta = conta + 1
    txtFrmCerca.Text = ""
    For i = 0 To UBound(A)
    txtFrmCerca.Text = txtFrmCerca & A(i)
    Next i
    intercetto la pressione del tasto cancella
    per eliminare l'ultimo tasto premuto
    If KeyAscii = 8 Then
    MsgBox "eliminazione indice array"
    End If
    End Sub


    Allora il problema è che quando scrivo all'interno della textBox vedo sempre il primo carattere che digito.

    Se digito la parola ciao nel mia textbox vedo alla prima pressione del tasto cc poi ici -> acia -> ociao spero di essermi spiegato bene.

    Quello che vorrei ottenere e eliminare il primo carattere di ogni pressione dei tasti.

    Ciao
    Mungo Mauro

  2. #2
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569
    prova a mettere alla fine della sub Keiascii = 0


  3. #3
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Originariamente inviato da Gigi84
    prova a mettere alla fine della sub Keiascii = 0

    GULP!....:master:

    E considerare un approccio diverso?
    Ti crei una variabile Boolean visibile a livello di modulo che imposti a falso quando il textbox riceve il focus;
    nell'evento keypress del Textbox, se la var Booleana e' false, la imposti a vera e automaticamente cancelli il carattere digitato, poi lasci tutto come', salvo impostare a false nell'evento validate del textbox il valore della var booleana

    La', qst e' il codice, forse rende meglio l'idea:
    Apri un progetto e metti un textbox all'interno.

    codice:
    Option Explicit
    Dim blnSaltaCar   As Boolean
    
    Private Sub Text1_GotFocus()
    blnSaltaCar = False
    End Sub
    
    Private Sub Form_Load()
       Text1.Text = ""
    End Sub
    
    Private Sub Text1_KeyPress(KeyAscii As Integer)
       If Not blnSaltaCar Then
          blnSaltaCar = True
          KeyAscii = 0
       End If
    End Sub
    
    Private Sub Text1_Validate(Cancel As Boolean)
    blnSaltaCar = False
    End Sub
    ...pulito e liscio come il sedere di un bimbo...
    ...and I miss you...like the deserts miss the rain...

  4. #4
    Utente di HTML.it L'avatar di fungo
    Registrato dal
    Jul 2000
    residenza
    Caorle
    Messaggi
    725

    Re

    Il primo metodo funziona, grazie.

    Mi puoi spiegare esattamente cosa fa keyAscii=0 ?


    Grazie
    Mungo Mauro

  5. #5
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569
    KeyAscii e codice ASCII corrispondente al carattere che hai èremuto per scatenare l'evento Keypress, se lo metti = 0 il carattere da te premuto diventa quello che ha ASCII 0 (Null)

    Ma spiegami una cosa.. non ho letto bene la funzione, ma lo scopo quale sarebbe ??


  6. #6
    Utente di HTML.it L'avatar di fungo
    Registrato dal
    Jul 2000
    residenza
    Caorle
    Messaggi
    725

    RE Gigi84

    Niente di utile solo prove.

    Ti faccio un'altra domanda.

    Su un frame ho una matrice di controlli textBox, circa una 20.

    Adesso vorrei validare le textbox in base al loro contenuto, come posso fare per avere un concide compatto?


    Grazie
    Mungo Mauro

  7. #7
    ... Infatti la soluzione di Gigi funziona perfettamente ....
    ma una domanda .... per fungo ... il tuo scopo è quello di cancellare automaticamente ogni parola che scrivi ..lasciano visualizzata solo l'ultima?!?!?! come mai??se è possibile saperlo
    Grazie ciao

  8. #8
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387

    Re: Re

    Originariamente inviato da fungo
    Il primo metodo funziona, grazie.
    In questo modo, se viene inserito molto testo, ad ogni carattere che aggiungi nel TextBox, tu riscrivi TUTTO il contenuto, per di + un carattere alla volta.

    Fai finta di avere 200 caratteri, quando aggiungi il 201° riscrivi tutto dal 1° al 201°, ne metti un altro e riscrivi tutto dal 1° al 202° e via dicendo, senza contare che ridimensioni un'array in modo dinamico e che impegni la memoria con un'array che ti serve solo a quello.

    (e' solo un punto di vista diverso)

    Originariamente inviato da fungo
    Mi puoi spiegare esattamente cosa fa keyAscii=0 ?
    Grazie
    "annulla" il valore del tasto premuto (non e' proprio cosi' xke' mette il carattere chr(0) che, anche se non viene visualizzato c'e').
    Ciao.
    ...and I miss you...like the deserts miss the rain...

  9. #9
    Utente di HTML.it L'avatar di JamesD
    Registrato dal
    Oct 2001
    Messaggi
    415

    Re: RE Gigi84

    Originariamente inviato da fungo
    Niente di utile solo prove.

    Ti faccio un'altra domanda.

    Su un frame ho una matrice di controlli textBox, circa una 20.

    Adesso vorrei validare le textbox in base al loro contenuto, come posso fare per avere un concide compatto?


    Grazie
    codice:
    for i = 0 to 19
       if txt(i).text = ... then
          txt(i).enable = false
       else
          txt(i).enabled = false
    next i

  10. #10
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569
    io sarò stupido ma non ho capito a che cosa serve la Routine!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.