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

    [VB6]Load a runtime di dll e gestione menù

    Spero qualcuno possa indirizzarmi sulla giusta strada per gestire questa cosa.

    Ho un applicazione alla quale voglio aggiungere nuove funzionalità
    che implemento in dll diverse.
    Non tutti i clienti che hanno l'applicazione avranno tutte le nuove funzionalità
    quindi alcuni avranno una dll, altri ne avranno n ed altri ancora nessuna.

    Sto facendo delle prove e sono riuscito in qualche modo a caricare a runtime
    le dll se queste sono presenti in una determinata cartella, viene creato un oggetto
    del tipo della dll e messo in array di object.
    Durante il caricamento viene chiamata una sub dentro la dll che aggiunge al menù
    della form principale le voci dei menù relative alle proprie funzionalità
    e qui viene il mio problema:

    come faccio in modo programmatico e a runtime a fare in modo che al click sulla
    voce di menù venga richiamato il metodo sulla dll ??

    Ogni suggerimento è ben apprezzato!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma questa DLL come aggiunge le voci di menu?

    Chiarisci un po' di piu', dicendo di quale DLL si tratta e mostrando il codice che hai usato ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    al momento nella form di prova che chiama la dll ho fatto così

    dentro la dll
    Codice PHP:
    Public Sub setmenu(newref As Object)
        
    Set frmmain newref
        Load frmmain
    .mnufilelist(1)
        
    frmmain.mnufilelist(1).Caption "prova"
        
        
    Load frmmain.mnufilelist(2)
        
    frmmain.mnufilelist(2).Caption "ciccio"
        
    End Sub 
    newref è il form principale che carica la dll e nel quale c'è il menu

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non e' completamente chiaro ... ad esempio, l'elemento

    mnufilelist

    e' un menu ... penso ci sia l'elemento con indice 0 ... dove e' dichiarato?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    L'elemento 0 è stato fatto a mano per creare il mnufilelist
    altrimenti mi sa che in vb6 nn c'è modo di creare da 0 un menu.

    Cmq a parte questo, c'è un modo per rendere completamente programmatica
    la parte dove cliccando sul menu viene istanziato un oggetto o recuperata in qualche modo
    la dll sulla quale chiamare la sub che mi interessa?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Quindi avrai disponibile nel codice una sub del tipo

    codice:
    Private Sub mnufilelist_Click(Index As Integer)
    
    End Sub
    che e' quello che dovresti usare esaminando opportunamente il valore di Index ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    capisco cosa intendi ed effettivamente ce l'ho

    ma quello che mi blocca, poiche so ben poco di vb6 è
    all'interno di tale sub come faccio a recuperare a runtime
    l'oggetto rappresentante la dll relativa al menù da me cliccato??

    Supponiamo io abbia una dll Fatture che contiene la sub
    crea_fattura
    in fase di creazione menù avro in index=1 "Fatturazione"

    alla sub da te postata arriva quindi index=1
    ok arrivato a sto punto cosa si suppone che debba fare??

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Beh ... all'interno della sub accedi alle proprieta' dell'elemento del menu ... ad esempio per ottenere la caption

    mnufilelist(Index).Caption

    o tutte le altre proprieta' in modo da decidere cosa fare ... (e questo lo devi sapere tu ... ad esempio, se Caption e' uguale a "Fattturazione" allora ... )
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    si ma questo nn mi permette di astrarre la form principale dalle dll

    ovvero ogni volta potrebbe esserci una dll oppure un altra.

    In qualche modo quello che mi serve è estrarre
    da un array di Object, la dll che ci sta dentro

    ti faccio un esempio



    Codice PHP:
    Private Sub mnufilelist_Click(Index As Integer)
     
    OggettoPlug GetObject da  Plugin().GetbyName(mnufilelist(Index).Caption'Prendo l'oggetto di tipo plugin che mi sono precedentemente salvato dentro l'array di object
     OggettoPlug.StartMethod()
    End Sub 
    ovviamente quello che ho scritto è una specie di pseudo codice, non conosco se
    effettivamente esistono metodi con quelle funzioni, è per farti capire cosa mi servirebbe:
    astrarre la chiamata al metodo

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non mi hai fatto capire ...

    Devi estrarre la DLL ? Ma che intendi ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.