Guide e Tutorials:indexed | |||||||||
Come effettuare una
stampa di una stringa tramite l'oggetto Print (Articolo completo) di BARBATI Federico Di solito nelle applicazioni in Visual Basic, per visualizzare il testo si utilizzano controlli predefiniti tipo Label e Text. Tuttavia, in determinate situazioni, potrebbe servire visualizzare un testo in un form o stamparlo su carta senza usare il limitato DataReport fornito con Visual Basic 6.0. Per il nostro scopo, è utile conoscere l'oggetto Print. Print, viene utilizzato per determinare un output o a video o a stampante ad esempio, Form1.Print "Questa è una prova!" determina la scritta Questa è una prova (vds fig.1), oppure Printer.Print "Questa è una prova!", determina una stampa di questa scritta. Per ragioni di semplicità tratteremo la stampa su Form e in modo non esaustivo. Ovviamente la stringa da stampare può essere memorizzata in una variabile:
e quindi alla stessa possono essere applicate le funzioni relative alle stringhe ad esempio Ltrim() per eliminare gli spazi iniziali, Rtrim() per eliminare gli spazi finali e Trim() per eliminare sia gli spazi iniziali che finali. Per determinare la posizione dove verrà stampato (video o stampante) il messaggio, vengono utilizzate le proprietà CurrentX e CurrentY. Ritornando all'esempio di prima, volendo visualizzare la stringa partendo dal centro del form, utilizzeremo il seguente codice:
Mentre per stamparla al centro del form:
I metodi TextWidth e TextHeight determinano rispettivamente la larghezza e l'altezza della stringa che verrà stampata in base al Font selezionato. Fin qui tutto bene, il problema nasce quando la stringa da stampare è più larga dell'area a disposizione (o più larga del foglio nel caso della stampante).
Come si nota nella figura 4, la stringa viene troncata nel momento che raggiunge la larghezza massima del Form. A questo proposito, potrebbe esserci di aiuto un nuova funzione introdotta con Visual Basic 6.0: Split(). La funzione Split(), suddivide una stringa in elementi delimitati, la sintassi è la seguente:
dove Source è la stringa da suddividere, Delimiter è il carattere utilizzato per delimitare i singoli elementi (se omesso viene usato lo spazio), Limit è un intero positivo per limitare il numero di elementi trovati ed infine per eseguire ricerche non sensibili alle lettere minuscole e maiuscole, si può passare il valore vbTextCompare all'ultimo argomento. In pratica: array() = Split(Questa è una prova!), trasforma array() in un array a base zero con quattro elementi: array(0)=Questa array(1)=è array(2)=una array(3)=prova! Ovviamente il carattere di delimitazione (in questo caso lo spazio), è stato eliminato. Il seguente codice, mostra come utilizzare questa funzione, in modo che una stringa più larga dello spazio a disposizione, possa adattarsi ad un form di qualsiasi dimensione:
In questo caso la differenza con la figura 4, mostra che la frase non viene troncata ma si adatta dinamicamente alla dimensione del Form. Questo codice (sicuramente migliorabile ma molto compatto), con dei piccoli cambiamenti e aggiunte, potrebbe tornare molto utile quando si deve stampare su carta il contenuto di un oggetto Text con la proprietà Multiline = True. |
Archivio:ndexed | ||||
Lezioni | Commenta questa lezione | Invia la tua guida | Avviso per le nuove lezioni | Proponi un argomento |
Visual Basic Italia© copyright 2000 - tutti i diritti riservati |