Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    33

    [VB6] Problema con il comando Printer

    Scusate se la spiegazione è un po' lunga...

    Disegno una curva su un form con delle variabili che ho calcolato precedentemente e alla fine vorrei stampare il form con qs grafico...
    Io ho scritto questa procedura ma quando mi si apre l'anteprima di stampa il foglio è bianco, perchè? (il grafico, se uso un pulsante "mostraGrafico", è giusto!"). Ho provato ad attivare da codice qs pulsante "mostraGrafico" perchè avendo utilizzato una procedura Resize non volevo rischiare che si cancellasse... potrebbe essere qs il problema? Cioè che Printer richiama una procedura Resize che mi cancella il contenuto del form? (Ho provato a non abilitarla per qs form, ma non cambia niente!)
    Cmq il codice usato è questo (se volete darci un occhio...)
    Ah, tra l'altro la stampante spenta non genera l'errore 25? Ho provato ma appare solo un "Dummy Data" nei file in stampa, ma non appare sullo schermo il MsgBox che ho inserito nella procedura...
    Idee?

    Private Sub ImagePrint_Click()
    Dim M$, NumErr As Integer, Continua As Variant 'variabili locali

    FrmDominio.BackColor = &HFFFFFF 'imposto lo sfondo bianco
    'nascondo tutti i controlli che non debbono apparire nella stampa
    ImagePrint.Visible = False
    ImageIndietro.Visible = False
    CmdRiassunto.Visible = False
    CmdMostra.Visible = False
    LblIndietro.Visible = False
    LblPrint.Visible = False
    CmdMostra.Enabled = True 'rivisualizzo il grafico
    PrintForm 'stampo il form
    On Error GoTo ControllaStampante 'gestione errori
    'riattivo i controlli
    ImagePrint.Visible = True
    ImageIndietro.Visible = True
    CmdRiassunto.Visible = True
    CmdMostra.Visible = True
    LblIndietro.Visible = True
    LblPrint.Visible = True
    FrmDominio.BackColor = &H8000000F 'reimposto lo sfondo
    Exit Sub

    ControllaStampante:
    NumErr = Err.Number
    Beep
    Select Case NumErr
    Case 25
    MsgBox "La stampante potrebbe essere spenta."
    Case 27
    MsgBox "C'è una stampante disponibile?"
    Case Else
    M$ = "Per favore, avvisate l'operatore che"
    M$ = M$ & vbCrLf ' nuova riga
    M$ = M$ & "si è verificato l'errore " & NumErr
    MsgBox M$
    End
    End Select
    M$ = "Se l'errore è stato corretto fare click su OK."
    M$ = M$ & vbCrLf
    M$ = M$ & "altrimenti fai click su Annulla."
    Continua = MsgBox(M$, vbOKCancel)
    If Continua = vbOK Then Resume Else End

    End Sub

  2. #2
    Imposta la proprietà del form:
    Codice:

    Me.AutoRedraw = True


    Per la stampante, è difficile che ritorni l'errore 25, in quanto lo spooler di stampa ti accetta comunque l'invio dei dati. Io cmq non uso PrintForm, in quanto ritengo che la qualità della stampa non sia delle migliori. Preferisco utilizzare i metodi PSet, Line, ect. dell'oggetto Printer.
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    33
    Thanks!
    Io avevo pensato di usare anche una PictureBox invece che stampare direttamente sul form... ma non ho ancora provato come viene perchè avrei dovuto riscrivere una buona parte del codice...
    Non ho capito cosa intendi dire quando mi suggerisce di usare i metodi del comando printer (un piccolo esempio?).
    Cmq grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.