Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Routine comune in un progetto ActiveX

    Ciao,

    sto sviluppando un OCX e nel progetto ho oltre l'UserControl, un form (frmDialog) e un modulo .bas (mdlShared). In frmDialog ho un commandbutton cmdCambia...

    Nella sezione dell'UserControl ho scritto una routine pubblica CambiaSfondo che ha come scopo quello di cambiare il backcolor dell'OCX.

    Adesso vorrei sapere come fare per richiamare la routine CambiaSfondo dal command cmdCambia presente in frmDialog.

    Spero esista una soluzione a questo problema.

    Grazie e ciao
    Pray your God or burn in my Hell

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Stiamo parlando di VB6, suppongo (ricorda che va sempre nel titolo) ...

    Il form di cui parli è all'interno del progetto OCX o è in un progetto di test dell'OCX?

    Dato che ci sei, mostra il codice che hai scritto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Scusami oregon hai ragione nella fretta ho dimenticato di dire che si tratta di VB6.

    Allora, il frmDialog è nello stesso progetto dell'OCX e questo è il codice del cmdCambia:
    codice:
    Private Sub cmdCambia_Click ()
    UserControl.CambiaSfondo vbRed  'Mi dice che non trova riferimenti all'oggetto UserControl
    End Sub
    Nell'OCX c'è invece questo:
    codice:
    Sub CambiaSfondo (ByVal Colore)
    BackColor = Colore            'Cambio lo sfondo all'OCX
    End Sub
    
    Sub MostrafrmDialog ()
    frmDialog.Show                   'Mostro il form frmDialog (la chiamata a questa sub viene fatta nel progetto di test)
    End Sub
    Allora, cosa ne pensi?
    Pray your God or burn in my Hell

  4. #4
    Nessuno sa come risolvere?
    Pray your God or burn in my Hell

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Hell_Devil
    Nessuno sa come risolvere?
    Pazienza ... mica è una chat ...

    L'uso di un form in un OCX (e il riferimento allo stesso dall'interno del form) non è comune (ma a cosa ti serve il form in un OCX?).

    Comunque, per risolvere, nel frmDialog

    codice:
    Public ctl As UserControl1
    
    Private Sub Command1_Click()
        ctl.CambiaSfondo vbRed
    End Sub
    nell'ocx

    codice:
    Private Sub UserControl_Initialize()
        Set Form1.ctl = Me
    End Sub
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Perdona la mia impazienza ma mi era urgente conoscere la risposta, che gentilmente mi hai fornito e per questo ti ringrazio.

    Il codice che ho postato era un esempio, per non andare tanto per le lunghe, ma dato che mi hai chiesto a cosa mi serva frmDialog ti spiego più a fondo il problema (quello vero).

    Sto sviluppando un OCX per il download di un file tramite protocollo HTTP usando il metodo AsyncRead. Il frmDialog non è altro che la finestra di dialogo che mostra l'avanzamento del download con la possibilità di annullare il download in corso tramite un click su cmdAbort.

    Dato che ho scritto la routine per la cancellazione manuale nell'OCX volevo sapere come usare tale codice anche in cmdAbort sul frmDialog (e qui ringrazio ancora per la risposta).

    Vorrei cogliere l'occasione per sottoporti un altro problema, o se ritieni meglio creare una nuova discussione fai pure (scusami ma non ricordo se sei moderatore di questo forum):

    quando lancio il metodo CancelAsyncRead <PropertyName> il download si interrompe. Ma appena riprovo a scaricare lo stesso file usando la stessa chiave <PropertyName> mi restituisce un errore. Sapresti risolvere o indirizzarmi verso qualche link che tratta la faccenda?

    Grazie ancora, ciao...
    Pray your God or burn in my Hell

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Hell_Devil
    ... Sto sviluppando un OCX ...
    In VB6 ?

    Un po' obsoleto ... fossi in te sceglierei strumenti più moderni ...

    Vorrei cogliere l'occasione per sottoporti un altro problema, o se ritieni meglio creare una nuova discussione fai pure (scusami ma non ricordo se sei moderatore di questo forum):
    Non lo sono ma so che i moderatori, come da regolamento e come da buon senso, ti indicheranno che è meglio aprire un altro thread ...

    restituisce un errore. Sapresti risolvere o indirizzarmi verso qualche link che tratta la faccenda?
    Scusa ... ma se non mi dici quale errore, come posso indirizzarti o risponderti?
    In ogni caso, apri un altro thread e dai tutte le spiegazioni del caso.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Scusami ancora, oregon, ho appena provato la soluzione che mi hai postato, ma non funziona.
    VB mi restituisce errore nella linea in grassetto:

    codice:
    Private Sub UserControl_Initialize()
        Set Form1.ctl = Me
    End Sub
    Perchè?
    Pray your God or burn in my Hell

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Hell_Devil
    Scusami ancora, oregon, ho appena provato la soluzione che mi hai postato, ma non funziona.
    VB mi restituisce errore nella linea in grassetto:

    codice:
    Private Sub UserControl_Initialize()
        Set Form1.ctl = Me
    End Sub
    Perchè?
    Io ho usato Form1 ... mi pare evidente che tu devi usare il nome del tuo form ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Io ho usato Form1 ... mi pare evidente che tu devi usare il nome del tuo form...
    Bhè, pare evidente anche a me...

    Il problema stava nel fatto che cercavo di richiamare la variabile ctl del frmDialog prima di aver caricato in memoria il form stesso...

    comunque ho risolto così:

    codice:
    Private sub Usercontrol_Initialize()
    Load frmDialog
    Set frmDialog.ctl = Me
    frmDialog.Show
    End Sub
    e per adesso funziona!

    Grazie ancora,
    Pray your God or burn in my Hell

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.