Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Vb6 - Controllo della funzione inputbox

    Salve a tutti.
    Nel programma che sto sviluppando ho bisogno di un prompt di immissione.
    Cosi faccio
    codice:
    dim nome as string
    nome  = inputbox("Inserire il nome")
    Però--

    Se premo il tasto ok va tutto bene
    Se premo il tasto annulla continua con le istruzioni consideranto la stringa vuota
    La stessa cosa col tasto X

    Invece dovrei intercettare il tasto annulla e gli piazzo un exit sub cosi annullo l'operazione.
    Ma come fare?
    Non trovo eventi, ho provato a fare come il msgbox(cio è
    if inputbox("Adso") = vbyes then...
    Ma niente da fare.
    Avete un'aiuto per me?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Potresti considerare il ritorno di una stringa vuota come un annullamento...oppure la tua applicazione consente anche la definizione di una stringa vuota?

    Purtroppo sono un po' arrugginito su VB6... non programmo da anni con questo ambiente.

    Al massimo, implementa una tua finestra con casella di immissione... ma scommetto che a questo avevi già pensato e forse la tua domanda serviva proprio per evitare questa soluzione, giusto?

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: Vb6 - Controllo della funzione inputbox

    Originariamente inviato da XVincentX
    Salve a tutti.
    Nel programma che sto sviluppando ho bisogno di un prompt di immissione.
    Cosi faccio
    codice:
    dim nome as string
    nome  = inputbox("Inserire il nome")
    Però--

    Se premo il tasto ok va tutto bene
    Se premo il tasto annulla continua con le istruzioni consideranto la stringa vuota
    La stessa cosa col tasto X

    Invece dovrei intercettare il tasto annulla e gli piazzo un exit sub cosi annullo l'operazione.
    Ma come fare?
    Non trovo eventi, ho provato a fare come il msgbox(cio è
    if inputbox("Adso") = vbyes then...
    Ma niente da fare.
    Avete un'aiuto per me?
    Dim s As String

    s = InputBox("Richiesta di input :")

    If StrPtr(s) = 0 Then
    MsgBox "Input annullato"
    End If

    Ciao

  4. #4
    Originariamente inviato da alka
    Al massimo, implementa una tua finestra con casella di immissione... ma scommetto che a questo avevi già pensato e forse la tua domanda serviva proprio per evitare questa soluzione, giusto?
    Infatti

    Ma allora toglietemi questa curiosità
    Il tasto annulla a che serve?
    E poi un'altra cosa
    Se scrivo qualcosa nell'inputbox e premo annulla, il compilatore prende la stringa non come vuota
    In pratica annulla e ok fanno la stessa cosa...e io come aggiro questo ostacolo?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da XVincentX
    Infatti

    Ma allora toglietemi questa curiosità
    Il tasto annulla a che serve?
    E poi un'altra cosa
    Se scrivo qualcosa nell'inputbox e premo annulla, il compilatore prende la stringa non come vuota
    In pratica annulla e ok fanno la stessa cosa...e io come aggiro questo ostacolo?
    Non hai letto la mia risposta ...

  6. #6
    A cosa mi serve vedere se è zero?
    Se scrivo una frase e premo annulla la stringa viene considerata, e quindi non è zero

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da XVincentX
    A cosa mi serve vedere se è zero?
    Se scrivo una frase e premo annulla la stringa viene considerata, e quindi non è zero
    Ma tu ha compreso il codice e l'hai provato?

  8. #8
    Provato ma non compreso. Difatti chidevo spiegazioni

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    controlli il puntatore della stringa, se ti ritorna 0 la stringa non è nemmeno inizializzata, quando premi OK anche se non scrivi nulla la stringa viene inizializzata e StrPtr non ti ritorna 0.
    Ans.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No, scusami ... non avevo capito che l'avevi provata e che andava bene.

    Il confronto con zero lo fai con il puntatore alla stringa ottenuto tramite la funzione StrPtr. Se la stringa non e' creata, il puntatore alla stringa (meglio, alla struttura BSTR che la rappresenta) vale zero. Solo quando la stringa viene creata (anche se vuota), il puntatore diventa diverso da zero. L'uso del pulsante Annulla non consente tale creazione.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.