Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Stampare form e controlli

Ciao a tutti.
Mi piacerebbe avere da voi qualche consiglio per risolvere un mio
problema.
Ho un form pieno di images, di label, e di textbox.
Il form e' di una dimensione prefissata che occupa lo schermo  a
risoluzione 800x 600. Se provo a stamparlo (col metodo print.form) mi
occupa esattamente 1/2 di A4.
Ora, considerato il fatto che non posso aumentare le dimensioni del
form (in modo tale da fargli occupare un A4 intero) perche' in quel
caso l'utente non potrebbe piu' utilizzare alcuni comandi (il form e'
assolutamente straripante di imagese controlli vari...), vorrei
riuscire a stamparlo su un A4.
Le soluzioni che (nella mia ignoranza) vedo sono:
1) Creare un form (virtuale) con la giusta dimensione di un a4  sul
quale copiare tutti i controlli e le immagini prelevate dal form con
dimensioni contenute. Per poi stamparlo... Ma e' una cosa lunghissima.
2) utilizzare l'oggetto printer.....per ogni singolo controllo, testo,
label, immagine sul form .........e anche qui non si scherza in quanto
a lovoro....
3) Qualche consiglio da voi ???? 
Non c'e un metodo per dire a VB, prendi il mio form e tutto il
contenuto, moltiplicale per un tot (zoom), e stampa ????
Un grazie a tutti.
Ciao, Fabio

 contenuto, moltiplicale per un tot (zoom), e stampa ????
Esiste il metodo Printer.Zoom, ma non fare salti di gioia,
a me non funziona con PrintForm....
Mi sa che il metodo giusto è fare tutto a manina
con un codice di questo tipo:
_________________________
Private Sub MioPrintForm(Scala as Integer)
    Printer.Zoom = Scala
    Dim n As Integer
    Printer.ScaleMode = vbTwips
    For n = 0 To Controls.Count - 1
        If TypeOf Controls(n) Is TextBox Then
            ' Disegna un riquadro nel punto e nella dimensione voluta
            Printer.FillColor = vbYellow
            Printer.FillStyle = vbFSSolid
            Printer.Line (Controls(n).Left, Controls(n).Top)-Step _
(Controls(n).Width, Controls(n).Height), vbBlack, B
            ' si deve stampare anche il testo
        End If
        If TypeOf Controls(n) Is CommandButton Then
            Printer.FillColor = vbGreen
            Printer.FillStyle = vbFSSolid
            Printer.Line (Controls(n).Left, Controls(n).Top)-Step _
(Controls(n).Width, Controls(n).Height), vbBlack, B
            ' si deve stampare anche la caption
        End If
' inserire gli altri tipi di controllo
    Next n
    Printer.EndDoc
End Sub
___________________________
Strano, ho una sensazione di Deja-vu... dopo averlo abbozzato, sono
sicuro di averlo già visto da qualche parte. Controlla sul manuale,
forse c'è già qualcosa del genere; il mio è a casa, qui sono al lavoro.
P.S.: forse sul MSDN ?
Bye, G.
--
---------------------------------------------
    Le risposte alle tue domande le trovi
    sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
       ... e nell'help in linea !
---------------------------------------------
Real E-address: 
gaet...@hotmail.com

 Ho un form pieno di images, di label, e di textbox.


Scusate l'intromissione, ma come fai a stampare un'area di dimensione A4 con
PrintForm e risoluzione 800 x 600? Credo che PrintForm tagli tutte le parti
che eccedono la risoluzione dello schermo. E che questo sia dovuto al modo
in cui Win 95 tratta le finestre, cioč non permette di ingrandirle oltre un
pelino la dimensione dello schermo. Forse il problema non si verificava con
Win 3.1. Se č veramente cosě PrintForm č quasi inutile con Win 95.
Mi pare di aver letto da qualche parte che MicroSoft sconsiglia di usare le
proprietŕ dell'oggetto Printer per PrintForm.
Da parte mia d'ora in avanti farň come se PrintForm non esistesse, ti stampa
anche alla modesta risoluzione di 96 dpi.