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

    moduli di classe e variabili pubbliche

    Vado con l'esposizione del problema:

    Ho un ActiveX con un Modulo di classe e un Modulo.

    Il modulo di classe richiama una particolare funzione contenuta nel modulo, elabora dei dati e restituisce un output.

    La funzione deve poter gestire una variabile (array) tipo questa

    codice:
    public oContent() as tipoUtente
    dove tipoUtente è simile alla seguente struttura:

    codice:
    Type tipoUtente
        strAppID As String
        intTotalAddresses As Integer
        isClient As Boolean
    End Type
    La DLL viene richiamata da un applicativo al quale possono accedere N utenti contemporaneamente, nasce quindi il problema di "assegnare" ad ogni accesso alla DLL la variabile
    codice:
    oContent()
    in modo che ogni "accesso" gestisce la "propria" variabile, ovvero in modo che i dati salvati dall'utente A nella variabile
    codice:
    oContent()
    generata dal primo accesso, siano completamente slegati di dati salvati dall'utente B nella variabile
    codice:
    oContent()
    generata dal secondo accesso.

    Questa la situazione. La domanda è:

    Come devo definire e dove la variabile
    codice:
    oContent()
    ?

    La Struttura del tipo si trova in un modulo ed è definita come PUBLIC, ma la variabile
    codice:
    oContent()
    se la definisco in un modulo come pubblica non mi garantisce la biunivocità dell'utilizzo con chi effettua la chiamata alla DLL.
    Se invece la definisco nel modulo di classe a livello di Dichiarazione, essendo un array, mi genera un errore.

    ???
    Qualcuno sa come aiutarmi?
    Tnx
    - -- --- ---- ----- v][rJiL ----- ---- --- - -

    °o0o°°o0o°°o0o° cIaUzcIaUzcIaUz °o0o°°o0o°°o0o°

    MSN: virjilnew@hotmail.com

  2. #2
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    potresti fare una variabile a livello di Modulo di Classe e del tipo TipoUtente e associarla alla chiamata della funzione del modulo facendo in modo che venga creata e restituita ogni volta che fai una nuova istanza. In questo modo ogni client si troverebbe la propria costante del tipo TipoUtente con le info relative a quel client.

    Se poi ti serve elaborare dei dati nel modulo in base al client che sta lanciando la nuova funzione fai in modo che questa funzione del modulo accetti un parametro del tipo TipoUtente in modo tale da poter operare all'interno del modulo con i dati di quel client

    sono stato spiegato?

  3. #3
    potresti fare una variabile a livello di Modulo di Classe e del tipo TipoUtente e associarla alla chiamata della funzione del modulo facendo in modo che venga creata e restituita ogni volta che fai una nuova istanza. In questo modo ogni client si troverebbe la propria costante del tipo TipoUtente con le info relative a quel client.
    Dunque... "associarla alla chiamata della funzione..." intendi passarla come parametro alla funzione?
    Volevo evitare di fare questo, poichè ho altri moduli della dll che devono poter accedere alla variabile in questione e se fosse possibile vorrei evitare di modificarli tutti passandogli di volta in volta la variabile.

    "...facendo in modo che venga creata e restituita ogni volta che fai una nuova istanza..." vuol dire che la devo dichiarare all'interno dell'Initialize() ?
    C'ho provato, ma anche se la dichiaro public... non la vedo al di fuori del modulo di classe.

    Considera poi che la variabile è un array e dichiararlo nel modulo di classe vuol dire generare un errore del tipo "va che non puoi dichiarare un array, un tipo... ecc... all'interno di un modulo di classe al di fuori di una funzione"



    Forse l'ho spiegato io un pò contorto...
    - -- --- ---- ----- v][rJiL ----- ---- --- - -

    °o0o°°o0o°°o0o° cIaUzcIaUzcIaUz °o0o°°o0o°°o0o°

    MSN: virjilnew@hotmail.com

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.