Ricerca 
it-ITen-US
Registrazione
Accedi
In-Vesti Dotnetwork
IN-VESTI DNW!!!
Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta.
Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni
Effettua il pagamento usando IWBank
Click per andare alla pagina di Iscrizione
Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione.  Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt.  Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!!
.:DotNetWork Founders:.
    Stampa     


DotNetWork Forums
Librerie personalizzate
Ultimo Post 28 gen 2010 17.02 by XC_Admin. 11 Risposte.
Stampa immediata
Ordina:
PrevPrev ProssimoProssimo
Non sei autorizzato ad inviare una risposta.
Autore Messaggi Non risolto

Posts:13

--
19 dic 2009 00.33  
Ciao a tutti ragazzi. Ho bisogno del vostro aiuto. Ho creato delle librerie personalizzate in vb.net 2008 ma ho un problema di velocità di risposta del sistema (a volte 6 secondi). Il problema so dov'è...ma non conosco il rimedio! Nel creare le mie dll (termoregolatore, lampada, dimmer, rilevatore IR, ecc.) ho dovuto ogni volta importare un oggetto XComm++. Quindi se uso in un appartamento 10 lampade per esempio creo 10 oggetti di lampada.dll e di fatti 10 connessioni con l'XComm (perchè dell'oggetto lampada fa parte l'oggetto XComm++)...questo rallenta di bestia il sistema! Io voglio trovare un modo per utilizzare i metodi tipo DTHP e gli eventi dell'XComm ma senza referenziare così tanti oggetti XComm. Come posso fare??? C'è un modo per creare un solo oggetto XComm++ e dialogare dalle altre DLL con esso? Un po' come credo facciano gli oggetti nativi della Net.
Grazie mille per l'aiuto



Posts:662

--
19 dic 2009 00.45  
L'oggetto XComm è un ActiveX che necessita di essere istanziato su una form poichè possiede oggetti con interfaccia grafica. Il mio consiglio è:
1) Crea una form con l'oggetto XComm istanziato rendendola pubblica a livello di libreria
2) Da ogni procedura che necessita di linkare l'oggetto XComm richiama direttamente i metodi con la sintassi: MyXCommForm.XComm1.DTHP....
3) La cosa più incasinata è gestire gli eventi ricevuti in asincrono dall'oggetto XComm perchè non sai mai a quale richiesta fanno riferimento a meno che non ti costruisci un gestore di eventi personalizzato che sia in grado di ricevere l'evento e rinotificarlo alla procedura che l'ha generato. Attenzione, in questo caso, alle operazioni cross-threading che peraltro sono e rimangono il grosso limite dell'utilizzo di oggetti ActiveX in ambiente .NET.
HTH
Alberto.



Posts:13

--
19 dic 2009 01.08  
Ciao Alberto! Innanzitutto grazie mille per la velocità nella risposta!
Ho già provato a creare un form "fittizio"...ma pur rendendolo pubblico non sono riuscito a selezionare i metodi che mi interessano!
Il problema del capire l'evento a chi fa riferimento l'ho già risolto, ma resta l'interrogativo dell'XComm.
Ti spiego bene la procedura che ho adottato. Ho creato una DLL da zero nella cui interfaccia grafica ho inserito l'XComm++ e la chiamo MioXComm.dll. Poi creo un'altra dll che chiamo per esempio lampada.dll, aggiungo il riferimento manualmente alla MioXComm.dll, vedo il form, vedo l'oggetto XComm, ma non ho accesso ai metodi...ovviamente neanche agli eventi. C'è qualche proprietà che mi sfugge??? Forse non l'ho reso pubblico nel modo corretto???



Posts:662

--
19 dic 2009 01.15  
Tutti gli oggetti creati sui form sono di default degli oggetti di tipo Friend e quindi visibili soltanto all'interno dell'assembly che li ha istanziati, prova ad impostare la proprietà Modifiers dell'oggetto XComm a Public .
HTH
Alberto.



Posts:13

--
19 dic 2009 01.22  

Allora sono andato nel Designer.vb e ho cambiato la seguente riga:
Friends WithEvents AxXComm1 As AxDrive_Xcomm.AxXComm
con
Public WithEvents AxXComm1 As AxDrive_Xcomm.AxXComm

Mi ha automaticamente cambiato la proprietà che dicevi tu!
Faccio subito una prova!

Grazie mille davvero!




Posts:13

--
19 dic 2009 01.40  
Niente da fare...eppure l'oggetto AxXComm1 lo visualizzo nell'Object Browser come:

Public WithEvents AxXComm1 As AxXComm
Member of MioXComm.UserControl1

Perchè non riesco a leggerne i metodi? Provando invece a trascinare il mio controllo sul form lampada creo un oggetto MioXComm1 che ha fra le proprietà AxXComm1...cioè MioXComm1.AxXComm1 è una proprietà che riporta nella indicazioni Public WithEvents AxXComm1 As AxXComm. Non dovrebbe essere un oggetto?



Posts:662

--
19 dic 2009 07.44  
Non capisco che tipo di logica hai usato... l'oggetto lampada dovrebbe esporre una proprietà di tipo Ax_XComm che espone all'esterno l'oggetto XComm comune...



Posts:13

--
19 dic 2009 12.49  
Ti allego i due progetti...sia MioXComm.dll che Lampada.dll! Sicuramente commetto qualche errore logico! C'è qualcosa che mi sfugge...!

Attachment: 001_Projects.zip


Posts:662

--
19 dic 2009 14.44  
C'è qualcosa che mi sfugge...!
Si... devi fare riferimento alla tua libreria MioXComm utilizzando lo UserControl che hai creato all'interno della libreria. Quindi:
1) Aggiungi la libreria MioXComm alla casella degli strumenti di VS
2) Trascina l'oggetto UserControl1 sul form della lampada
3) A quel punto hai disponibili tutti i comandi dell'oggetto XComm
4) A me questo tipo di soluzione piace molto poco.
5) Istanzia direttamente l'oggetto XComm in una form condivisa sul progetto definitivo dove andrai ad utilizzare i vari UserControl e passa per riferimento ad ogni oggetto la stessa istanza dell'oggetto XComm condiviso...
HTH
Alberto.



Posts:13

--
20 dic 2009 01.02  
Infatti la 5 è la soluzione perfetta...anche perchè trascinando l'oggetto MioXComm difatti creo un altro oggetto XComm se non erro (utilizzo da poco VB.net sono un novello). Il problema è che non so come fare...mi servirebbe qualche riga di codice guida o un help online sull'argomento. Ho un po' di confusione in merito all'argomento reference di oggetti...per questa applicazione! HELP ME!!!

PS
Alberto sei gentilissimo e paziente!!! Grazie mille!



Posts:13

--
28 gen 2010 14.54  
Ciao Alberto, credo di essere riuscito finalmente nell'intento! Avevo una cosa da chiederti! Per essere sicuro che il metodo funzioni, c'è un modo per sapere quanti oggetti XComm vengono creati durante l'esecuzione? Il mio interesse è quello di crearne uno solo...voglio verificare che davvero sia così!
Grazie mille per l'aiuto

Gianpaolo



Posts:40

--
28 gen 2010 17.02  
Complimenti


Non sei autorizzato ad inviare una risposta.

Active Forums 4.1
       
Articoli
Codedom Introduzione all'uso parte2
Costruire il generatore di codice
2009/11/07 | Autore: Sabrna Cosolo
Visual Studio LightSwitch Beta 1 - Installazione
La procedura di installazione e le risorse sul web
2010/08/24 | Autore: Mario De Ghetto
SQL Server Nozioni base (parte 2)
Come creare un database in SQL Server Usando solo il codice SQL
2008/03/09 | Autore: Sabrina Cosolo
Addin per Live Writer
Programmer Paster, un Addin per Live Writer che colora il codice sorgente inserito nei Post dei Blog
2007/11/11 | Autore: Rudy Azzan
Panoramica del Sistema dei Comandi
Come iniziare a capire com'è fatto WPF (parte 5)
2007/09/30 | Autore: Patrizia Cosolo
SQL Server Nozioni base (parte 1)
Come creare un database in SQL Server Usando Sql Management Studio
2008/03/09 | Autore: Sabrina Cosolo
Iniziare da Zero con WPF
Un occhiata al modello base del progetto Windows Application di WPF
2007/08/16 | Autore: Sabrina Cosolo
Miniguida alla OOP con il .NET Framework- Parte III
Un' importante eredità: l'ereditarietà
2009/02/08 | Autore: Alberto De Luca
    Stampa     
Home|Forums|Blogs|Mappa del sito
© 2007-2010 by DotNetWork  .:.  Condizioni d'uso  .:.  Privacy  .:.  Accedi  .:.