Ricerca 
it-ITen-US
Register
Login
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:.
    Print     


DotNetWork Forums
Librerie personalizzate
Last Post 28 Jan 2010 17:02 by XC_Admin. 11 Replies.
Printer Friendly
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages Not Resolved

Posts:13

--
19 Dec 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:666

--
19 Dec 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 Dec 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:666

--
19 Dec 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 Dec 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 Dec 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:666

--
19 Dec 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 Dec 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:666

--
19 Dec 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 Dec 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 Jan 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 Jan 2010 17:02  
Complimenti


You are not authorized to post a reply.

Active Forums 4.1
       
Articoli
.NET e l'Interoperabilità COM
Come utilizzare Dll non referenziabili per convertire un documento Word in PDF
2008/07/05 | Author: Massimo Lofrano
ASP.NET immagini dinamiche con HttpHandler
Costruiamo un HttpHandler per la creazione di immagini dinamiche
2007/10/24 | Author: Rudy Azzan
Our Dll's in the Add Reference .NET Tab
How to be able to show our DLLs in the Add reference Windows Under the .NET Tab.
2008/07/27 | Author: Sabrina Cosolo
Memorizzare immagini in SQL Server
un'immagine per la memorizzazione su un campo Image di SQL Server e viceversa
2007/09/04 | Author: Sabrina Cosolo
Starting from scratch with Visual Studio
Introducing .NET and Visual Studio
2007/07/29 | Author: Sabrina Cosolo
CodeDom Getting started part 2
Building the Code Generator
2009/11/07 | Author: Sabrna Cosolo
SQL Server Base Notions (part 1)
How to create a database in SQL Server using SQL Management Studio
2008/03/09 | Author: Sabrina Cosolo
SQL Server 2000/2005 Manutenzione Database
Uso di DBCC ShowContig e di sys.dm_db_index_physical_stats
2007/08/05 | Author: Sabrina Cosolo
    Print     
Home|Forums|Blogs|Mappa del sito
© 2007-2010 by DotNetWork  .:.  Terms Of Use  .:.  Privacy Statement  .:.  Login  .:.