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

    [vb6] accedere controlli form da modulo

    ciao,

    é possibile modificare un controllo a partire da un modulo?

    esempio:

    nel modulo in questione posso accedere in lettura a
    codice:
    frmMain.myText.text
    ma non posso modificarlo:
    codice:
    frmMain.myText.text = "testo modificato da modulo"
    come posso risolvere?
    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
    E perche' non puoi modificarlo?

  3. #3
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    a saperlo!!!

    al click del mouse su un bottone richiamo una procedura dentro al form userManagement.

    nella procedura faccio questo:
    codice:
    first_name = frmMain.txtFirstName.Text
    name = frmMain.txtName.Text
    username = frmMain.txtUsername.Text
    e infatti tutto funziona alla perfezione (vale a dire che le mie variabili prendono il testo nei textbox).

    ma se faccio questo:
    codice:
    'nel form
    userManagement.test
    
    ' nel modulo
    Public Function test()
        frmMain.txtUsername.Text = "ciao"
    End Function
    non so. dove sbaglio? :master:
    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
    E dove chiami la funzione test? Quali errori/messaggi hai? Cosa e' userManagement ?

    Cerca di essere piu' chiaro ... non vedo problemi ...

  5. #5
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    modulo userManagement:
    codice:
    Public Function test()
        frmMain.txtUsername.Text = "ciao"
    End Function
    form frmMain (codice):
    codice:
    Private Sub cmdSave_Click()
        userManagement.test     
    End Sub
    al click richiamo la funzione pubblica test (che si trova nel modulo userManagement). Questa funzione scrive ciao all'interno del textbox txtUsername (che si trova nel frmMain)

    errori non me ne da (cioé: niente messaggi) ma non scrive niente. inoltre il programma non si blocca nemmeno, fino a quando non lo chiudo. Infatti alla chiusura non si chiude tutto: resta in esecuzione ma la finestra sparisce
    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
    Una cosa per volta ... dato che a me funziona perfettamente (e perche' non dovrebbe?), probabilmente il problema e' da qualche altra parte del tuo codice.

    Hai utilizzato altri eventi del textbox (per esempio Change o altro ...?) ... se e' cosi', qual e' il codice?

    Hai provato a fare eseguire il codice passo passo in debug?

    Il fatto che non si chiuda il programma e' causato dal fatto che non annienti correttamente tutte le istanze di oggetti che hai creato all'interno del tuo programma ...

  7. #7
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    questo é l'unico pezzo di codice che fa riferimento al textbox che voglio modificare dal form (si trova nel form frmMain):
    codice:
    ' Put the selected information into the user form
    Private Sub grdUsers_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
    
        Dim curRowBook As Integer
        Dim user_id As Integer
        Dim gcol As MSDataGridLib.Column
        
        curRowBook = grdUsers.GetBookmark(0)
        Set gcol = grdUsers.Columns("user_id")
        user_id = gcol.CellValue(grdUsers.GetBookmark(0))
        fillUserForm user_id
        
    End Sub
    
    Private Sub fillUserForm(Id As Integer)
        
        Dim q As String
        Dim rs As ADODB.Recordset
        
        q = "SELECT * FROM [user] WHERE user_id = " & Id
        Set rs = db.exeQuery(q)
        
        If Not rs.EOF Then rs.MoveFirst
        
        txtUsername.Text = rs!user_name
        txtName.Text = rs!name
        txtFirstName.Text = rs!first_name
        txtPassword.Text = rs![password]
        txtPasswordCheck.Text = rs![password]
        modFunctions.SelectItemData cmbGroup, rs!Group
        modFunctions.SelectItemData cmbLang, rs!default_lang
        
        cmdSave.Caption = "Save changes"
        
    End Sub
    inoltre ho provato a fare un altro progetto con solo i comandi che volevo testare e infatti funziona tutto benissimo (come dicevi te). ma cosa mai puo essere???
    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
    Hai fatto il debug passo passo come ti avevo scritto in grassetto?

  9. #9
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    l'ho fatto passare tutto riga per riga...
    quando arrivo a questa riga:
    codice:
    frmMain.txtUsername.Text = "ciao"
    su frmMain.txtUsername.text mi dice:

    "<object variable or with block variable not set"

    e poi ripassa all'istruzione sub Form_Load! é normale :master: ?????
    alcool: la causa e la soluzione di tutti i problemi

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Allora un errore c'e' ... hai deciso di farmi impazzire?

    Sei sicuro che il form si chiami frmMain? Controlla attentamente ...

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.