Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313

    [vb6] - determinare se controllo esiste

    creando un controllo cosi:
    codice:
    ' Create a textbox and append it to fraSpecFields
    name = "myTextBox"
    Set txtNew = frmMain.Controls.Add("VB.TextBox", name, frmMain.fraSpecFields)
    come posso determinare se esiste a run-time? mi serve perché lo creo in base a una scelta dell'utente. inoltre se provo a prendere il valore di un txtbox.text che non esiste il programma (come é ovvio) si blocca.

    ci sto sbattendo la testa gia da ieri... qualche consiglio?
    alcool: la causa e la soluzione di tutti i problemi

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per sapere se il controllo esiste basta cercarlo nella collezione Controls.

    Ma non ho capito il secondo problema ...

  3. #3
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    Originariamente inviato da oregon
    Per sapere se il controllo esiste basta cercarlo nella collezione Controls.

    Ma non ho capito il secondo problema ...
    se io da codice creo un controllo txtbox e lo chiamo pippo.

    msgbox pippo.text funziona

    ma se per caso pippo non é stato creato

    msgbox pippo.text blocca tutto perché vb non trova la txtbox.

    é per evitare questo comportamento che devo controllare se un controllo txtbox di nome pippo esiste.

    mi fai un esempio della soluzione che proponi?
    alcool: la causa e la soluzione di tutti i problemi

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non ho capito come crei il textbox pippo ...

  5. #5
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    codice:
    Set txtNew = frmMain.Controls.Add("VB.TextBox", "pippo", frmMain.fraSpecFields)
    ma come detto io non so a prescindere se il controllo sarà creato o meno. pero a un certo punto devo recuperarne il contenuto (sempre se il controllo é stato creato).
    alcool: la causa e la soluzione di tutti i problemi

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il controllo viene creato e tu avrai accesso a tale controllo con l'oggetto

    txtNew

    e quindi, ad esempio

    MsgBox txtNew.Text

    Non ho ancora capito il problema ...

  7. #7
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    Originariamente inviato da oregon
    Il controllo viene creato e tu avrai accesso a tale controllo con l'oggetto

    txtNew

    e quindi, ad esempio

    MsgBox txtNew.Text

    Non ho ancora capito il problema ...
    la cosa é molto semplice:

    1) progr: "utente, quali textbox vuoi creare?" (pippo, pluto, paperino)
    2) utente:" voglio creare solo pluto e paperino"
    ...)
    n) progr: "voglio salvare i dati nel database, ma se un controllo non é stato creato non posso prenderne il testo. come faccio?"

    infatti se provo:
    codice:
    val_pluto = pluto.text ' ok
    val_paperino = paperino.text 'ok
    val_pippo = pippo.text 'errore: il controllo pippo non esiste!
    io voglio quindi fare
    codice:
    if pluto esiste then val_pluto = pluto.text
    if paperino esiste then val_paperino = paperino.text
    if pippo esiste then val_pippo = "null"
    alla fine mi costruisco la mia query e inserisco i dati nel db.

    capito?

    ps: il fatto di sapere o no se é stato creato il controllo dipende da alcune scelte dell'utente, quindi io non posso sapere quali e quanti controlli lascierà da parte.
    spero di essermi spiegato

    edit:
    ho a disposizione tutti i nomi dei controlli (che essi vengano creati o meno)... voglio solo testare se il controllo con il nome "pippo" (o quello che vogliamo) é stato creato o no.
    alcool: la causa e la soluzione di tutti i problemi

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se ho capito bene ... se scrivi

    codice:
        Dim t As TextBox
        
        On Error Resume Next
        Set t = Controls("pippo")
        If Err Then
            Err.Clear
            Print "Il controllo non esiste"
        Else
            Print "Il controllo esiste"
            MsgBox t.Name
        End If
    ottieni l'informazione che cerchi ...

  9. #9
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    grazie. ora provo
    alcool: la causa e la soluzione di tutti i problemi

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.