Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Printer Select Dialog Form -- Part 3A

What VB shoud be able to do!

Printer Select Dialog Form -- Part 3A

by  CassandraR  Posted    (Edited  )
Save as PrintSel.frm
Code:
VERSION 5.00
Begin VB.Form frmPrinterSelect 
   BorderStyle     =   3  'Fixed Dialog
   Caption         =   "Printer Select"
   ClientHeight    =   4035
   ClientLeft      =   2760
   ClientTop       =   3750
   ClientWidth     =   6870
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   4035
   ScaleWidth      =   6870
   ShowInTaskbar   =   0   'False
   Visible         =   0   'False
   Begin VB.Frame fraPrinterSelect 
      Caption         =   " Orientation "
      Height          =   1215
      Index           =   2
      Left            =   4800
      TabIndex        =   4
      Top             =   2280
      Width           =   1935
      Begin VB.OptionButton optPrinterSelect 
         Caption         =   "L&andscape"
         Height          =   255
         Index           =   1
         Left            =   360
         TabIndex        =   20
         Top             =   740
         Width           =   1215
      End
      Begin VB.OptionButton optPrinterSelect 
         Caption         =   "P&ortrait"
         Height          =   255
         Index           =   0
         Left            =   360
         TabIndex        =   19
         Top             =   320
         Value           =   -1  'True
         Width           =   1215
      End
   End
   Begin VB.Frame fraPrinterSelect 
      Caption         =   " Paper "
      Height          =   1215
      Index           =   1
      Left            =   120
      TabIndex        =   3
      Top             =   2280
      Width           =   4575
      Begin VB.ComboBox cboPrinterSelect 
         Height          =   315
         Index           =   2
         Left            =   1200
         Style           =   2  'Dropdown List
         TabIndex        =   18
         Top             =   720
         Width           =   3135
      End
      Begin VB.ComboBox cboPrinterSelect 
         Height          =   315
         Index           =   1
         Left            =   1200
         Style           =   2  'Dropdown List
         TabIndex        =   17
         Top             =   240
         Width           =   3135
      End
      Begin VB.Label lblPrinterSelect 
         Caption         =   "Source:"
         Height          =   255
         Index           =   10
         Left            =   240
         TabIndex        =   16
         Top             =   740
         Width           =   855
      End
      Begin VB.Label lblPrinterSelect 
         Caption         =   "Size:"
         Height          =   255
         Index           =   9
         Left            =   240
         TabIndex        =   15
         Top             =   320
         Width           =   855
      End
   End
   Begin VB.Frame fraPrinterSelect 
      Caption         =   " Printer "
      Height          =   2055
      Index           =   0
      Left            =   120
      TabIndex        =   2
      Top             =   120
      Width           =   6615
      Begin VB.ComboBox cboPrinterSelect 
         Height          =   315
         Index           =   0
         Left            =   1200
         Style           =   2  'Dropdown List
         TabIndex        =   10
         Top             =   200
         Width           =   3135
      End
      Begin VB.Label lblPrinterSelect 
         Height          =   255
         Index           =   8
         Left            =   1200
         TabIndex        =   14
         Top             =   1680
         Width           =   3135
      End
      Begin VB.Label lblPrinterSelect 
         Height          =   255
         Index           =   7
         Left            =   1200
         TabIndex        =   13
         Top             =   1320
         Width           =   3135
      End
      Begin VB.Label lblPrinterSelect 
         Height          =   255
         Index           =   6
         Left            =   1200
         TabIndex        =   12
         Top             =   960
         Width           =   3135
      End
      Begin VB.Label lblPrinterSelect 
         Height          =   255
         Index           =   5
         Left            =   1200
         TabIndex        =   11
         Top             =   600
         Width           =   3135
      End
      Begin VB.Label lblPrinterSelect 
         Caption         =   "Comment:"
         Height          =   255
         Index           =   4
         Left            =   240
         TabIndex        =   9
         Top             =   1680
         Width           =   855
      End
      Begin VB.Label lblPrinterSelect 
         Caption         =   "Where:"
         Height          =   255
         Index           =   3
         Left            =   240
         TabIndex        =   8
         Top             =   1320
         Width           =   855
      End
      Begin VB.Label lblPrinterSelect 
         Caption         =   "Type:"
         Height          =   255
         Index           =   2
         Left            =   240
         TabIndex        =   7
         Top             =   960
         Width           =   855
      End
      Begin VB.Label lblPrinterSelect 
         Caption         =   "Status:"
         Height          =   255
         Index           =   1
         Left            =   240
         TabIndex        =   6
         Top             =   600
         Width           =   855
      End
      Begin VB.Label lblPrinterSelect 
         Caption         =   "&Name:"
         Height          =   255
         Index           =   0
         Left            =   240
         TabIndex        =   5
         Top             =   240
         Width           =   855
      End
   End
   Begin VB.CommandButton CancelButton 
      Caption         =   "Cancel"
      Height          =   375
      Left            =   5520
      TabIndex        =   1
      Top             =   3600
      Width           =   1215
   End
   Begin VB.CommandButton OKButton 
      Caption         =   "OK"
      Height          =   375
      Left            =   4200
      TabIndex        =   0
      Top             =   3600
      Width           =   1215
   End
End
Attribute VB_Name = "frmPrinterSelect"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'---------------------------------------------------------------------------------------
' Module    : frmPrinterSelect
' Date      : 18 May 2003
' Author    : Cassandra Roads, P. Eng.
' Copyright (c) 2003 Professional Logics Corporation
'---------------------------------------------------------------------------------------
Option Explicit

Private m_clsPrtSelect As clsPrintSelect
Private m_prtSelectedPrinter As Printer
Private m_intPortrait As Integer
Private m_intPaperSize As Integer
Private m_intPaperSizes() As Integer
Private m_apiPaperSizes() As POINTAPI
Private m_intPaperBin As Integer
Private m_intPaperBins() As Integer
Private m_blnInProcess As Boolean
'

'
'----------------------------------------------------------------------------------------
'   PROPERTIES
'----------------------------------------------------------------------------------------
'
'---------------------------------------------------------------------------------------
' Procedure : SelectedPrinter
' Date      : 18 May 2003
' Author    : Cassandra Roads, P. Eng.
' Copyright (c) 2003 Professional Logics Corporation
'---------------------------------------------------------------------------------------
'
Friend Property Get SelectedPrinter() As Printer
    Set SelectedPrinter = m_prtSelectedPrinter
End Property
'
'----------------------------------------------------------------------------------------
'

'---------------------------------------------------------------------------------------
' Procedure : PrintSelect
' Date      : 18 May 2003
' Author    : Cassandra Roads, P. Eng.
' Copyright (c) 2003 Professional Logics Corporation
'---------------------------------------------------------------------------------------
'
Friend Property Set PrintSelectCls(ByRef clsNewPS As clsPrintSelect)
    If IsNull(clsNewPS) Then Exit Property
    If clsNewPS Is Nothing Then Exit Property
    Set m_clsPrtSelect = clsNewPS
End Property
'
'----------------------------------------------------------------------------------------
'

'---------------------------------------------------------------------------------------
' Procedure : CancelButton_Click
' Date      : 18 May 2003
' Author    : Cassandra Roads, P. Eng.
' Copyright (c) 2003 Professional Logics Corporation
'---------------------------------------------------------------------------------------
'
Private Sub CancelButton_Click()
    Me.Hide
End Sub
'
'----------------------------------------------------------------------------------------
'

'---------------------------------------------------------------------------------------
' Procedure : cboPrinterSelect_Click
' Date      : 18 May 2003
' Author    : Cassandra Roads, P. Eng.
' Copyright (c) 2003 Professional Logics Corporation
'---------------------------------------------------------------------------------------
'
Private Sub cboPrinterSelect_Click(Index As Integer)
    '   If we are in a process and the combobox routine is not to run, then exit.
    '   Set up the error handler.
    '   If the printer select combobox has been altered, then
    '       Get a pointer to the selected printer, by scanning the Printers object.
    '       Populate the other two comboboxes based on the selected printer.
    '       Obtain and display the selected printer's stati.
    '   Elseif the PaperSize combobox has been altered, then
    '       Pick up the PaperSize index for the selected paper size.
    '       Tell the Report Generator module the PaperSize index.
    '       Tell the selected printer which PaperSize index to change to.
    '   Elseif the PaperBin combobox has been altered, then
    '       Pick up the PaperBin index for the selected paper bin.
    '       Tell the Report Generator module the PaperBin index.
    '       Tell the selected printer which PaperBin index to change to.
    '------------------------------------------------------------------------------------
    '
    Dim prtX As Printer, I As Integer, strTemp As String, strPrinterName As String
    Dim strPrinterType As String, strPrinterStatus As String, strPortName As String
    Dim strComment As String
    
    If m_blnInProcess Then
        Exit Sub
    Else
        m_blnInProcess = True
    End If
    '
    On Error GoTo cboPrinterSelect_Click_Error
    '
    strTemp = m_prtSelectedPrinter.DeviceName
    '
    If Index = 0 Then                   ' Printer Selection CBO
        '
        For Each prtX In Printers
            If prtX.DeviceName = cboPrinterSelect(0).Text Then
                Set m_clsPrtSelect.SelectedPrinter = prtX
                Set m_prtSelectedPrinter = prtX
                Exit For
            End If
        Next prtX
        '
        Call PopulatePaperCBOs
        If GetPrinterStati(m_prtSelectedPrinter.DeviceName, strPrinterType, _
                    strPrinterStatus, strPortName, strComment) Then
            strTemp = ""
            If m_prtSelectedPrinter.DeviceName = Printer.DeviceName Then
                strTemp = "Default printer; "
            End If
            lblPrinterSelect(5).Caption = strTemp & strPrinterStatus
            
            If Len(strPrinterType) > 0 Then
                lblPrinterSelect(6).Caption = strPrinterType
            Else
                lblPrinterSelect(6).Caption = m_prtSelectedPrinter.DeviceName
            End If
            
            lblPrinterSelect(7).Caption = strPortName
            lblPrinterSelect(8).Caption = strComment
        End If
        '
    ElseIf Index = 1 Then               ' Paper Size CBO
        I = m_intPaperSizes(cboPrinterSelect(1).ListIndex + 1)
        Call SetPrinterProperty(m_prtSelectedPrinter.DeviceName, DM_PAPERSIZE, I)
    ElseIf Index = 2 Then               ' Paper Source CBO
        I = m_intPaperBins(cboPrinterSelect(2).ListIndex + 1)
        Call SetPrinterProperty(m_prtSelectedPrinter.DeviceName, DM_DEFAULTSOURCE, I)
    End If
    m_blnInProcess = False
    On Error GoTo 0
    Exit Sub
    
cboPrinterSelect_Click_Error:
    Debug.Print "frmPrinterSelect : cboPrinterSelect_Click :: " & Err.Number & " : " & _
            Err.Description
    Err.Clear
    On Error GoTo 0
End Sub
'
'----------------------------------------------------------------------------------------
'
'
Continued in Part 3B
Register to rate this FAQ  : BAD 1 2 3 4 5 6 7 8 9 10 GOOD
Please Note: 1 is Bad, 10 is Good :-)

Part and Inventory Search

Back
Top