Sunday, May 28, 2017   
  Search  
 
Register  Login  
Projects » VB 6.0 » VB6.0 various projects  
   Various projects  
     
  
   VB6.0 various projects Maximize  
     
  
   Associated icon Minimize  

How to get associated icon for file types.

This sample project show how to get associated icon for a specific file, and for all files of a folder.

 

     
  
   ListBox SetTabStop Minimize  

ListBox SetTabStop

How to insert data in a ListBox in columnar form?
Just set up the necessary tabs LB_SETTABSTOPS sending a message with the API function SendMessage (...) to your ListBox.

The VB6.0 project shows two examples (sample1 and sample2).


Sample 1

 

 

Sample 2

 

     
  
   Shaped Controls Minimize  

SHAPED CONTROLS

 

This project shows how to customize the appearance of a PictureBox control using the API functions for the Regions of Windows.

Personalizzare l'aspetto di un controllo utilizzando le funzioni API delle Regioni di Windows. L'immagine di esempio parla da sola.

 

     
  
   Resize, Move and Save control at run-time Minimize  

This project shows how it is possible to resize and move controls at run time (run-time) exactly as we used to do VB6 IDE in a Form.

The form is closed, the position and size of all controls will be persisted in an INI file so that the next session we will find them exactly as we left them.
The example (in the right part of the Form) also shows how to add images at run-time using an array of Image controls and, if the checkbox Save & Load Image (array) is selected, these will all be reloaded the next time in the same position and size.

Thanks to these features you could create such a form that the user can customize it.

 

Questo progetto mostra come sia possibile ridimensionare e spostare controlli in fase di esecuzione (run-time) esattamente come siamo abituati a fare nell'IDE di VB6 in un Form.

Alla chiusura del form, la posizione e dimensione di tutti i controlli sarà resa persistente in un file INI così che alla prossima sessione li ritroveremo esattamente come li abbiamo lasciati.
L'esempio (nella parte a destra del Form) mostra anche come aggiungere immagini a run-time utilizzando un array di controlli Image e, se il relativo checkbox è selezionato, anche queste saranno tutte ricaricate alla prossima nella stessa posizione e dimensione. 

Grazie a tali caratteristiche si potrebbe ad esempio creare un form che l'utente può personalizzarsi.

     
  
   CommandButton con immagine Minimize  

PrintDB 2010 - Nuova versione 2.1.3

Novità della versione 2.1.3:

  1. Compatibile con tutti i formati database di Access: dalla '97 alla 2010
    Per i database 2007 e 2010 (.accdb), se non si ha MSAccess installato, è necessario installare l'apposito driver Office System 2007 (vedi link sotto)
  2. Aggiunta la possibilità di selezionare la stampante tra quelle installate nel sistema.
    Come impostazione di default usa la stampante predefinita.
     Nota: non modifica la stampante predefinita, ma usa solamente quella selezionata.
  3. Il progetto sorgente contiene 2 nuovi moduli BAS:
    - modComboEx.Bas (per impostare altezza e larghezza della finestra drop-down
    - modPrinter.bas (contiene le funzioni per la selezione della stampante)

 Driver di Office System 2007: Data Connectivity Components
http://www.microsoft.com/downloads/details.aspx?displaylang=it&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891

 

 

Aggiungere un'immagine ad un CommandButton

L'esempio mostra come caricare un'immagine in un CommandButton senza impostare la proprietà Style su 1-Graphical, il che significa che si potranno usare immagini senza perdere lo style visuale del CommandButton e che per ciò funzionerà sia su Windows XP, Vista e Seven.

Il progetto dimostra anche come usare indifferentemente le due versioni della CommonControls 5 e 6.
Allo scopo consiglio di dare uno sguardo al mio vecchio articolo pubblicato su
www.visual-basic.it:

Controlli standard di VB in stile Windows XP
a cura di Giorgio Brausi  (pubblicato il 29/04/2002)
Livello:Principianti
Come utilizzare il nuovo stile grafico di Windows XP in tutti i controlli standard dei vostri programmi VB e le finestre di dialogo standard. (3 articoli)

Oltre al fatto di caricare l'immagine senza perdere lo stile, è anche possibile utilizzare icone a 32bit di WindowsXP (con Alpha Channel), il che rende questo mini progetto una vera chicca per chi richiede immagini con aspetto davvero professionale.
Chiccha accresciuta dal fatto che viene caricata un'icona a 32bit nella CC5, a dispetto dei noti problemi che questo controllo ha con immagini superiori con più di 16 colori!
Per di più, possiamo impostare l'allineamento dell'immagine: destra, sinistra, sopra e sotto.

La cosa sorprendente è che tutto questo è fatto con una manciata di righe di codice e qualche, ovvia, funzione API.

 

 


     
  
   PNG in VB6 with GIDPlus Minimize  

PGN in VB6 with GDIPlus

Come tutti sanno, VB6 supporta solo immagini di BMP, JPG, GIF, WMF, EMF e ICO (ma non quelle a 32bit). 
Quando si tenta di caricare un'immagine di tipo PNG si riceve un'errore Immagine non valida.

Il presente progetto include un modulo BAS che consente di caricare anche le immagini PNG nei vostri progetti in VB6 impostando opzionalmente larghezza e l'altezza  dell'immagine, ed il colore di sfondo (che sarà applicato alla parte trasparente dell'immagine PNG).

Per caricare l'immagine si usa una sola riga di codice. Esempio:

Command1.Picture = LoadPictureGDIPlus(sFile, , , vbGreen)

Davvero semplice! 

 

     
  
     Minimize  

 

USB - Notifica & Rimozione

Questo progetto mostra come ricevere la notifica quando si inserisce una chiavetta USB e come rimuovere detta chiavetta, il tutto fatto programmaticamente, ovvero senza obbligare l'utente a farlo manualmente.
Le notifiche si ricevono non solo per le chiavette USB ma per qualsiasi altra modifica venga fatta a livello di file system. Il codice è davvero potente.

Nel textbox a destra verranno elencate tutte le notifiche ricevute in conseguenza di un qualsiasi evento. 
Ad esempio, avviate il progetto, poi aprite Esplora Risorse e create un nuovo file. Riceverete le relative notifiche.
Oppure avviate il progetto (senza nessuna chiavetta USB inserita) e poi inserite la chiavetta e vedrete che:

- si aggiornerà l'elenco dei drives
- cambierà l'immagine della chiavetta arancione e relativa didascalia
- si aggiornerà nel TextBox l'elenco dei messaggi di notifica relativi

Attenzione, però, che viene utilizzato il subclassing della finestra quindi si raccomanda di chiudere il progetto nell'IDE esclusivamente tramite l'apposito pulsante Exit, oppure usando i comandi del menu di sistema.
Per nessun motivo di deve usare l'istruzione End e tanto meno il pulsante STOP presente nella toolbar dell'IDE di VB6!!!

 

Allinea il testo

Questo progetto è una traduzione da un listato in C del 1992 (incluso) preso dal libro Programmare Windows di C. Petzold.
Un aspetto importante è quello del ritorno a capo che, grazie alle API, viene gestito in automatico.
A sinistra abbiamo una semplice TextBox con il testo da elaborare
Nella PictureBox a destra osserviamo il risultato con il testo stampato utilizzando la giustificazione (calcolando un margine di 10 pixels).

Codice Fiscale

 

  • Usa ADO

  • è possibile (in automatico) creare il codice fiscale anche per i nati all'estero.
    Infatti il nuovo database contiene due tabelle: una dei Comuni d'Italia, una con gli Stati esteri.

  • Tutto il codice relativo alla gestione del codice fiscale è inglobato nel modulo modCodiceFiscale.bas, quindi se volete aggiungerlo ad un vostro progetto vi basta copiare questo file ed il database e richiamare le routine già predisposte dal vostro programma!

  • sono utilizzate funzioni API per l'interfaccia (vedi il codice sorgente commentato).

 

PrintDB

 

 

Questo è un progetto veramente utile ed è stato realizzato da Gabriele Marchionni. Consente la stampa della struttura delle tabelle di un file MDB.
Da me modificato e pubblicato su gentile concessione dell'autore.

L'ho trovato talmente utile che ho pensato di perfezionarlo ed aggiungervi altre importanti funzionalità per renderlo ancor di più versatile e flessibile. Ecco l'elenco delle modifiche apportate:

  • aggiunta una classe che memorizza in un file INI tutti i database recentemente aperti (senza alcun limite di numero), e ne ricarica tutti i percorsi in un combobox all'avvio del programma. Questo evita di dover ogni volta navigare per il file system alla ricerca del database, se questo era già stato caricato in precedenza.

  • ho reso compatibile al 100% il progetto con i Themes di Windows XP sostituendo i Frame con PictureBox e aggiungendo una chiamata alla funzione InitCommonControls (eliminando così quel classico e fastidioso 'flickering' dei Frame quando si muove il mouse al loro interno).

  • ho aggiunto un checkbox che consente all'utente di selezionare o deselezionare tutte le tabelle. Infatti se ho un DB con 57 tabelle e voglio stamparne una sola sono costrettto a cliccare 56 volte per deselezionare le tabelle che non mi servono.

  • per la stampa ho parametrizzato la dimensione della prima colonna Nome del campo che aveva un'impostazione fissa a 32, ciò non permetteva di stampare correttamente alcuni campi se erano più lunghi (creando quindi una stampa sovrapposta del testo). Ho perciò aggiunto un combobox da cui, prima di stampare, si può impostare la larghezza della prima colonna (le altre sono sempre fisse, quindi non ho ritenuto opportuno modificarle.). Funziona solo con la stampa reale, non per l'anteprima di stampa.

  • ho corretto un errore nella routine di stampa che, a volte, produceva la stampa di pagine vuote.

  • ho aggiunto il codice per poter aprire un DB protetto da password. Prima, restituiva un laconico "Errore nel file."

  • Se l'utente digita nella casella txtPath un qualche percorso, il pulsante "Sfoglia..." aprirà la finestra di dialogo su 'quel' percorso, così da 'snellire' la navigazione nel file system.

 

TrapTABkey

 Ovvero come intercettare (ma anche simulare) la pressione del tasto TAB, o SHIFT TAB.

Questo progetto mostra 3 approcci diversi per intercettare il tasto TAB:

  1. Usando solo puro codice VB
    Questo metodo è complesso ed articolato, e necessità la scrittura di istruzioni in ogni singolo controllo..
  2. Usando la funzione GetKeyState
    Metodo dal codice drasticamente più semplice rispetto al 1°, ma che richiede comunque la scrittura di istruzioni in ogni singolo controllo.
  3. Usando la funzione GetKeyState Multicasting
    Ritengo che sia il metodo migliore, perchè con l'aiuto di 2 classi si scrive il codice necessario UNA sola volta e possiamo gestire lo stesso evento per più tipi di controlli in una volta sola!
    Altri notevoli vantaggi, rispetto ai precedenti esempi: 
    a) Se aggiungiamo un controllo al Form già gestito dalle classi, non serve aggiungere alcuna istruzione.
    b) Se aggiungiamo un nuovo Form al progetto, è sufficiente istanziare la classe clsForm, e tutti gli eventi dei relativi controlli saranno gestiti automaticamente.
    c) Le classi sono riutilizzabili in qualsiasi progetto
    d) Se si usano ulteriori TIPI di controlli di terze parti (es DTPicker), è sufficiente aggiungerli all'elenco dei controlli da gestire (vedere la routine SetVbForm di clsForm).
    e) La classe clsControls può essere ampliata a piacere con routine che reagiscono agli eventi. A titolo di esempio, si osservi nel progetto quelle già presenti come ColorFocus, ShowMessage, ShowToolTips.

 

 

 

     
 Print   
DotNetNuke® is copyright 2002-2017 by DotNetNuke Corporation