dicembre 2005 Blog Posts

Aggiornare le applicazioni da VB6 a VB.NET

Personalmente sono nella convinzione che il convertitore automatico presente su Visual Studio .NET faccia più danni che altro. Ho personalmente provato il convertitore, la mia conclusione è che tra Visual Basic 6 e Visual Basic .NET  si debba parlare di "porting" e non di "conversione" .La conversione è un aggiornamento che porta un sorgente Visual Basic ad essere compatibile con un compilatore più aggiornato, abbiamo avuto quindi una conversione tra tutte le release di Visual Basic dalla 3 alla 6.Il porting invece avviene quando arriva un cambio di piattaforma, si parla di porting quando ad esempio si prendono dei sorgenti scritti per Windows...

Percorsi di aggiornamento a Visual Studio 2005

L'elenco completo delle possibilità di aggiornamento a Visual Studio 2005Percorsi di aggiornamento a Visual Studio 2005  

Attivare una form con C# e VB.NET tramite l'indicazione del nome

Questo è una funzione che attiva una form ritrovandola tramite il suo nome. Si richiama con la sintassi: ApriFormByName("MyForm1","MyNamespace"); oppure ApriFormByName("MyForm1",null); In questo secondo caso la ricerca avverrà sul namespace di default. Ovviamente gli assembly nominati devono essere già "caricati". C# private void ApriFormByName(string formName, string namespaceName) {     string fullName = namespaceName;    try    {       if (namespaceName == null)       fullName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;       if (!fullName.EndsWith("."))       fullName += ".";       fullName += formName;       Type oFormType = Type.GetType(fullName);       ((Form) oFormType.GetConstructor (System.Type.EmptyTypes).Invoke(null)).Show();    }   catch (Exception ex)   {      MessageBox.Show(ex.Message + " " + ex.StackTrace);    } }   VB.NET           Private Sub ApriFormByName(ByVal formName As String, ByVal namespaceName As String)                   Dim fullName As String = namespaceName                  ...

Avviare da Visual Basic un Report di Access protetto da password utilizzando l'automazione

Per avviare un report di Access protetto da password utilizzando l'automazione: Inserire nel proprio progetto un riferimento ad Access Incorporare nel proprio progetto il seguente: Sub StampaReport(pDataBase As String, pPasswd, pReport As String)    Dim objAccess As Access.Application    Set objAccess = CreateObject("Access.Application")    objAccess.OpenCurrentDatabase pDataBase, False, pPasswd    objAccess.DoCmd.OpenReport pReport    objAccess.CloseCurrentDatabase    objAccess.Quit    Set objAccess = NothingEnd Sub I tre parametri da passare sono rispettivamente 1) file database 2) Password database 3) nome report

Compattazione database Access con C# e JRO

Ho visto passare nella mailing list la richiesta di poter compattare un db di Access da C#. Per attivare la compattazione è necessario inserire tra i riferimenti "Microsoft Jet and Replication Object" reperibile tra gli oggetti COM. Di seguito un programma console a cui passare come argomenti i due nomi di database. Attenzione che non fa molti controlli per cui per un utilizzo in produzione consiglio caldamente di aggiungere tutti i controlli mancanti e soprattutto di NON fare MAI prove con database di cui non si possiede una copia di salvataggio. /*  * Created by SharpDevelop.  * User: Luciano  * Date: 31/10/2005  * Time: 10.18  */ using System; using JRO;   namespace CompactDatabaseAccess {      ...

Piccola escursione su PropertyInfo e MethodInfo con C#

Di seguito un piccolo esempio di come estrarre proprietà e metodi pubblici da una classe. Realizzato con il vim , compilato con Mono, eseguito su Linux e Windows. Per la compilazione sotto Linux: [root@lucy tmp]# mcs testinfo.csPer l'esecuzione con Linux (ogni riferimento a persone è del tutto casuale): [root@lucy tmp]# mono testinfo.exe Nerio Neri Per l'esecuzione con windows c:\testinfo.exe Nerio Neri In tutti i casi si ottiene un output:   =========== Valori =========Nerio Neri=========== Properties =========NomeCognome=========== Method =========get_Nomeset_Nomeget_Cognomeset_CognomeMainGetNomeCognomeEqualsGetHashCodeGetTypeToString   Di seguito TestInfo.cs using System; using System.Reflection;   namespace ProvaModuliCs {       public class  TestInfo       {             private string mNome;             private string mCognome;             public TestInfo(string pNome, string pCognome)             {                   this.Nome = pNome;                   this.Cognome = pCognome;             }             public string Nome             {                  ...

Trasformazione cifre in lettere per vb6 / vba

A seguito della richiesta di un amico ho trasportato la mia funzione scritta in C#  su piattaforma VB6/VBA   Per l'utilizzo su excel è necessario impostare il parametro in input della funzione Cifre2Lettere con la cella contenente il valore da trasformare.   Per Vb6 naturalmente è necessario richiamare la funzione Cifre2Lettere passandogli il valore (currency) da trasformare.Ringrazio "frankzappa" perchè mi ha consentito di identificare un banale errore che mi era sfuggito nella conversione da C#.   Option Explicit        Private Function Unita(ByVal k As Integer) As String            Dim Lettere() As String            Lettere = Split(",uno,due,tre,quattro,cinque,sei,sette,otto,nove,dieci,undici,dodici,tredici,quattordici,quindici,sedici,diciassette,diciotto,diciannove", ",")            If (k < 0) Or (k > UBound(Lettere) ) Then                Unita =...

Copyright © Luciano Bastianello

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski