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

    Visual Basic e ActiveX DLL

    Qualcuno sa se è possibile creare una ActiveX DLL ed utilizzare come variabile membro della classe un componente OCX????

    Grazie

  2. #2
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    ...non ho ben capito la domanda...cmq....
    ...all'interno della DLL activeX, puoi utilizzare qualsiasi componente, basta che quest'ultimo non abbia un output a video.
    ...and I miss you...like the deserts miss the rain...

  3. #3

    [VB] Domanda su ActiveX DLL

    Innanzitutto grazie per la risposta. Volevo solo precisarti una cosa:

    Dicendo

    "...utilizzare come variabile membro della classe un componente OCX..."

    intendo dire questo:

    codice:
    Option Explicit
    
    ' PROPRIETA': Variabili membro private
    Private m_comm As MSComm
    Private m_num As Long
    Private m_str As String
    
    ' METODI: Funzioni di interfaccia
    Public Sub funzione1()
        m_str = "Stringa1"
        m_num = 1
    End Sub
    
    Public Sub funzione2(ByVal var As String)
        m_str = "Stringa2"
        m_num = 2
        m_comm.CommPort = 1                   <-------!!!! ERRORE!!!!!
    End Sub
    L'errore e' "Object variable or With block variable not set (Error 91)"


    Perche' non posso assegnargli il valore?????

  4. #4
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569
    Perchè non l'hai ancora istanziata (settata)(come dice l'errore)!!

    o la istanzi nella dichiarazione
    con:
    codice:
    Private m_comm As New MSComm
    oppure appena prima di usarla:
    [code]
    Public Sub funzione2(ByVal var As String)
    m_str = "Stringa2"
    m_num = 2
    Set m_comm = New MSComm
    m_comm.CommPort = 1
    End Sub
    [code]
    ti sconsiglio di istanziarli nella dichiarazione, a meno che la routine lo utilizza in ogni caso!

    ricordati alla fine che devi liberare la memoria occupata con
    Set m_comm = Nothing


    Ciao!!


  5. #5
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Meglio nel Class_Initialize
    codice:
    Set m_comm = New MSComm
    E nel Class_Terminate
    codice:
    Set m_comm = Nothing

  6. #6
    Sono contento per le risposte ricevute, ma la pratica non funziona!!!
    Provare per credere!!!

    Possibile che non ci sia modo di usare un componente dentro una ActiveX DLL ????

    Riallego il tutto per chi volesse provare questo semplice esempio:

    PROGETTO ActiveX DLL di nome Class1:
    codice:
    Option Explicit
    
    ' PROPERTIES':
    Public m_comm As MSComm
    Private m_num As Long
    Private m_str As String
    
    Public Sub function1(ByVal var As String)
        MsgBox var
        m_str = "Str1"
        m_num = 1
        m_comm.CommPort = 1                   '<-------!!!! ERROR!!!!!
    End Sub

    PROGETTO Standard EXE:
    codice:
    Private Sub Command1_Click()
        Dim class As New Class1
        class.function1 ("pippo")
    End Sub

    Non c'e' verso di farlo funzionare usando l'istruzione SET.


    MatteoXMad

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.