Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197

    [vb6] funzione generica per distruzione oggetti

    ho degli array di oggetti di tipo "PowerPoint.slide" , "PowerPoint,shape", "PowerPoint.xxx"

    ho scritto una sub generica per la distruzione di tali array
    codice:
    Private Sub distruggiVettore(ByRef objVettore As Object)
        Dim index As Integer
        For index = 0 To UBound(objVettore)
            Set objVettore(index) = Nothing
        Next
    End Sub
    come vedete il parametro da passare è di tipo "object" mentre quello che io passo è di tipo formalmente diverso(diciamo piu specializzato), ma cmq sono oggetti,
    l'errore che mi da è del tipo: "byref argoment type mistmach"


    ora mi chiedo pure non essendo il vb un linguaggio propriamente ad oggetti, non si riesce a far trattare un oggetto come uno derivato da un tipo base?o sto dicendo cavolate?

  2. #2
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    ho notato che sostiuendo il parametro object con varian, risolvo il problema, ma ora mi chiedo anche se ho passato il parametro per riferimento, sto distruggendo effettivamentre l'oggetto originale?

  3. #3
    no ne distrugge un array a caso
    ovvio che distrugge quello che gli dici di distruggere
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  4. #4
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    Originariamente inviato da xegallo
    no ne distrugge un array a caso
    ovvio che distrugge quello che gli dici di distruggere
    ammazza quanto sei divertente

    il un tipo object non è in qualche modo compatibile con un tipo qualsiasi di una libreria tipo powerpoint? word? excell o di altra natura?

    il vb non fa una conversione implicita con un tipo simile?(insomma credo sia simile) ma meno specializzato, capisco l'opposto ma in questo caso credo che un tipo object rispetto a un tipo PowerPoint.Application sia un tipo base quindi stiamo risalendo la gerarchia degli oggetti derivati(anche se ripeto non stiamo parlando di un linguaggio ad oggetti)

  5. #5
    Originariamente inviato da afrappe

    il un tipo object non è in qualche modo compatibile con un tipo qualsiasi di una libreria tipo powerpoint? word? excell o di altra natura?
    no per fare una routine generica devi usare variant
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  6. #6
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    ok thanks

  7. #7
    il un tipo object non è in qualche modo compatibile con un tipo qualsiasi di una libreria tipo powerpoint? word? excell o di altra natura?
    il vb non fa una conversione implicita con un tipo simile?
    Povero VB: di conversioni implicite ne fa già pure troppe !
    Scherzi a parte, tu stesso hai detto che vb non è propriamente a oggetti. Forse, se lo fosse, ancora non sarebbe in grado di eseguire conversioni tra oggetti. Si renderebbe necessario overloadare l'operatore di conversione e concependolo in base caratteristiche di due tipi di oggetti specifici da convertire. VB non è a oggetti, quindi addio overloading.

    Per quanto riguarda il tuo problema, c'è sotto una questione di concetti: hai a disposizione un'array di oggetti. Non puoi passarlo ad una sub che accetta un tipo Object: sarebbe come passare un'array di stringhe ad una sub che accetta un tipo string...
    Modificando l'argomento della sub e rendendolo variant, il tutto funziona correttamente perchè il variant viene convertito (implicitamente) in qualsiasi tipo di dato e nel tuo caso diventa un'array. Se l'argomento viene passato byref, stai sicuro che tutti gli oggetti originali vengono distrutti: il passaggio per riferimento corrisponde a passare per valore il puntatore alla variabile originale. Così, la sub che riceve il parametro agisce direttamente sulla variabile originale.

  8. #8
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    thanks to you, too

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.