home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 January / pcwk_01_1999.iso / Wtestowe / Vistdstd / Install / Data.Z / Progress.FRM (.txt) < prev    next >
Visual Basic Form  |  1997-05-23  |  19KB  |  550 lines

  1. VERSION 4.00
  2. Begin VB.Form frmProgress 
  3.    Appearance      =   0  'Flat
  4.    BackColor       =   &H00C0C0C0&
  5.    BorderStyle     =   3  'Fixed Dialog
  6.    ClientHeight    =   4455
  7.    ClientLeft      =   -30
  8.    ClientTop       =   1530
  9.    ClientWidth     =   6480
  10.    BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  11.       Name            =   "MS Sans Serif"
  12.       Size            =   8.25
  13.       Charset         =   0
  14.       Weight          =   700
  15.       Underline       =   0   'False
  16.       Italic          =   0   'False
  17.       Strikethrough   =   0   'False
  18.    EndProperty
  19.    ForeColor       =   &H00000000&
  20.    Height          =   4860
  21.    Left            =   -90
  22.    LinkTopic       =   "Form1"
  23.    MaxButton       =   0   'False
  24.    MinButton       =   0   'False
  25.    ScaleHeight     =   4455
  26.    ScaleWidth      =   6480
  27.    Top             =   1185
  28.    Width           =   6600
  29.    Begin Threed.SSPanel pnlStndoc 
  30.       Height          =   3390
  31.       Left            =   180
  32.       TabIndex        =   7
  33.       Top             =   180
  34.       Width           =   1950
  35.       _Version        =   65536
  36.       _ExtentX        =   3440
  37.       _ExtentY        =   5980
  38.       _StockProps     =   15
  39.       ForeColor       =   -2147483640
  40.       BackColor       =   8421376
  41.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  42.          Name            =   "MS Sans Serif"
  43.          Size            =   8.25
  44.          Charset         =   0
  45.          Weight          =   700
  46.          Underline       =   0   'False
  47.          Italic          =   0   'False
  48.          Strikethrough   =   0   'False
  49.       EndProperty
  50.       BevelOuter      =   1
  51.       Begin VB.Image imgStndoc 
  52.          Appearance      =   0  'Flat
  53.          Height          =   3360
  54.          Left            =   0
  55.          Picture         =   "PROGRESS.frx":0000
  56.          Top             =   0
  57.          Width           =   1920
  58.       End
  59.    End
  60.    Begin VB.CommandButton cmdCancel 
  61.       Appearance      =   0  'Flat
  62.       BackColor       =   &H80000005&
  63.       Caption         =   "Cancel"
  64.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  65.          Name            =   "MS Sans Serif"
  66.          Size            =   8.25
  67.          Charset         =   0
  68.          Weight          =   400
  69.          Underline       =   0   'False
  70.          Italic          =   0   'False
  71.          Strikethrough   =   0   'False
  72.       EndProperty
  73.       Height          =   375
  74.       Left            =   5160
  75.       TabIndex        =   6
  76.       Top             =   3960
  77.       Width           =   1155
  78.    End
  79.    Begin VB.CommandButton cmdNext 
  80.       Appearance      =   0  'Flat
  81.       BackColor       =   &H80000005&
  82.       Caption         =   "Next >"
  83.       Default         =   -1  'True
  84.       Enabled         =   0   'False
  85.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  86.          Name            =   "MS Sans Serif"
  87.          Size            =   8.25
  88.          Charset         =   0
  89.          Weight          =   400
  90.          Underline       =   0   'False
  91.          Italic          =   0   'False
  92.          Strikethrough   =   0   'False
  93.       EndProperty
  94.       Height          =   375
  95.       Left            =   3840
  96.       TabIndex        =   0
  97.       Top             =   3960
  98.       Width           =   1155
  99.    End
  100.    Begin VB.CommandButton cmdBack 
  101.       Appearance      =   0  'Flat
  102.       BackColor       =   &H80000005&
  103.       Caption         =   "< &Back"
  104.       Enabled         =   0   'False
  105.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  106.          Name            =   "MS Sans Serif"
  107.          Size            =   8.25
  108.          Charset         =   0
  109.          Weight          =   400
  110.          Underline       =   0   'False
  111.          Italic          =   0   'False
  112.          Strikethrough   =   0   'False
  113.       EndProperty
  114.       Height          =   375
  115.       Left            =   2700
  116.       TabIndex        =   5
  117.       Top             =   3960
  118.       Width           =   1155
  119.    End
  120.    Begin Threed.SSPanel Panel3D1 
  121.       Height          =   375
  122.       Left            =   2220
  123.       TabIndex        =   4
  124.       Top             =   3000
  125.       Width           =   4215
  126.       _Version        =   65536
  127.       _ExtentX        =   7435
  128.       _ExtentY        =   661
  129.       _StockProps     =   15
  130.       Caption         =   "Panel3D1"
  131.       ForeColor       =   4210752
  132.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  133.          Name            =   "MS Sans Serif"
  134.          Size            =   8.25
  135.          Charset         =   0
  136.          Weight          =   700
  137.          Underline       =   0   'False
  138.          Italic          =   0   'False
  139.          Strikethrough   =   0   'False
  140.       EndProperty
  141.       BevelOuter      =   1
  142.       FloodType       =   1
  143.    End
  144.    Begin VB.Line Line2 
  145.       BorderColor     =   &H00FFFFFF&
  146.       X1              =   180
  147.       X2              =   6300
  148.       Y1              =   3795
  149.       Y2              =   3795
  150.    End
  151.    Begin VB.Label Label3 
  152.       Appearance      =   0  'Flat
  153.       BackColor       =   &H80000005&
  154.       BackStyle       =   0  'Transparent
  155.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  156.          Name            =   "MS Sans Serif"
  157.          Size            =   8.25
  158.          Charset         =   0
  159.          Weight          =   400
  160.          Underline       =   0   'False
  161.          Italic          =   0   'False
  162.          Strikethrough   =   0   'False
  163.       EndProperty
  164.       ForeColor       =   &H00000000&
  165.       Height          =   255
  166.       Left            =   2220
  167.       TabIndex        =   3
  168.       Top             =   2520
  169.       Width           =   4215
  170.    End
  171.    Begin VB.Label Label2 
  172.       Appearance      =   0  'Flat
  173.       BackColor       =   &H80000005&
  174.       BackStyle       =   0  'Transparent
  175.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  176.          Name            =   "MS Sans Serif"
  177.          Size            =   8.25
  178.          Charset         =   0
  179.          Weight          =   400
  180.          Underline       =   0   'False
  181.          Italic          =   0   'False
  182.          Strikethrough   =   0   'False
  183.       EndProperty
  184.       ForeColor       =   &H00000000&
  185.       Height          =   255
  186.       Left            =   2220
  187.       TabIndex        =   2
  188.       Top             =   2160
  189.       Width           =   4215
  190.    End
  191.    Begin VB.Label Label1 
  192.       Appearance      =   0  'Flat
  193.       BackColor       =   &H80000005&
  194.       BackStyle       =   0  'Transparent
  195.       Caption         =   "Creating report..."
  196.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  197.          Name            =   "MS Sans Serif"
  198.          Size            =   8.25
  199.          Charset         =   0
  200.          Weight          =   400
  201.          Underline       =   0   'False
  202.          Italic          =   0   'False
  203.          Strikethrough   =   0   'False
  204.       EndProperty
  205.       ForeColor       =   &H80000008&
  206.       Height          =   255
  207.       Left            =   2220
  208.       TabIndex        =   1
  209.       Top             =   240
  210.       Width           =   4215
  211.    End
  212. Attribute VB_Name = "frmProgress"
  213. Attribute VB_Creatable = False
  214. Attribute VB_Exposed = False
  215. Option Explicit
  216. Private Sub Cancel_Click()
  217.     End
  218. End Sub
  219. Private Sub cmdCancel_Click()
  220.     g_appVisio.ScreenUpdating = True
  221.     End
  222. End Sub
  223. Private Sub DrawCreate()
  224.     Dim stencil As Visio.Document             ' stencil document
  225.     Dim Page As Visio.Page
  226.     Dim shape As Visio.shape
  227.     Dim master As Visio.master
  228.     Dim masters As Visio.masters
  229.     Dim label As Visio.master
  230.     Dim text As Visio.master
  231.     Dim inst As Visio.shape                  ' instance
  232.     Dim xLeft
  233.     Dim yTop
  234.     Dim xRight
  235.     Dim yBottom
  236.     Dim row
  237.     Dim col
  238.     Dim pageNumber
  239.     Dim masterIndex
  240.     Dim stencilName
  241.     Dim pageName
  242.     Dim stat
  243.     ' Get stencil
  244.     '
  245.     Set stencil = g_appVisio.Documents(gDoc.Filename)
  246.     If stencil.Title = "" Then
  247.         stencilName = stencil.Name
  248.     Else
  249.         stencilName = stencil.Title
  250.     End If
  251.         
  252.     stat = DrawYield(stencilName, STR_BACKGROUND, "")
  253.     ProgressGauge (5)
  254.     ' Compute page count
  255.     '
  256.     Set masters = stencil.masters
  257.     gDoc.masters = masters.Count
  258.     gDoc.PageCount = gDoc.masters \ gGrid.masters
  259.     If (gDoc.masters Mod gGrid.masters) > 0 Then
  260.         gDoc.PageCount = gDoc.PageCount + 1
  261.     End If
  262.     ' Draw header on background page
  263.     '
  264.     If gDoc.Header = True Then
  265.         xLeft = gPage.LeftMargin
  266.         xRight = gPage.pageWidth - gPage.RightMargin
  267.         yTop = gPage.pageHeight - gPage.TopMargin
  268.         yBottom = yTop - gPage.Header / 6
  269.         Set shape = gPageBack.DrawRectangle(xLeft, yTop, xRight, yBottom)
  270.         shape.FillStyle = "Black fill"
  271.         yTop = yBottom
  272.         yBottom = gPage.pageHeight - gPage.TopMargin - gPage.Header
  273.         Set shape = gPageBack.DrawRectangle(xLeft, yTop, xRight, yBottom)
  274.         shape.style = "_Header"
  275.         shape.text = stencilName
  276.     End If
  277.     stat = DrawYield("", "", "")
  278.     ProgressGauge (10)
  279.     ' Draw left footer on background page.
  280.     ' The left footer includes the line at the bottom of the page.
  281.     '
  282.     If gDoc.Footer = True Then
  283.         xLeft = gPage.LeftMargin
  284.         xRight = gPage.pageWidth - gPage.RightMargin
  285.         yBottom = gPage.BottomMargin
  286.         yTop = yBottom + gPage.Footer
  287.         Set shape = gPageBack.DrawLine(xLeft, yTop, xRight, yTop)
  288.         shape.style = "_FootLeft"
  289.         shape.text = UCase(gDoc.Filename)
  290.     End If
  291.     stat = DrawYield("", "", "")
  292.     ProgressGauge (15)
  293.     ' Create property masters
  294.     '
  295.     If gDoc.properties = True Then
  296.         ' Create text master
  297.         '
  298.         xRight = gGrid.ColWidth - gPage.LabelWidth
  299.         Set shape = gPageBack.DrawRectangle(0, 0, xRight, 0)
  300.         shape.style = "_PropText"
  301.         shape.text = "Name:" & Chr(10) & Chr(10) & "Prompt:"
  302.         
  303.         ' Drop text master into local stencil
  304.         '
  305.         Set text = gDocDraw.Drop(shape, 0, 0)
  306.         
  307.         ' Create label master
  308.         '
  309.         shape.Cells("Width").Formula = gPage.LabelWidth
  310.         shape.style = "_PropLabel"
  311.         ' Drop label master into local stencil
  312.         '
  313.         Set label = gDocDraw.Drop(shape, 0, 0)
  314.         shape.Delete
  315.     End If
  316.     stat = DrawYield("", "", "")
  317.     ProgressGauge (20)
  318.     ' Draw grid
  319.     '
  320.     If gDoc.gridlines = True Then
  321.         ' Draw vertical gridlines
  322.         '
  323.         For col = 0 To gGrid.cols - 2
  324.             xLeft = gGridArray(0, col).Right
  325.             xRight = xLeft
  326.             yTop = gGridArray(gGrid.rows - 1, col).Top
  327.             yBottom = gGridArray(0, col).Bottom
  328.             Set shape = gPageBack.DrawLine(xLeft, yTop, xRight, yBottom)
  329.             shape.style = "_Gridline"
  330.         Next
  331.         ' Draw horizontal gridlines
  332.         '
  333.         For row = 0 To gGrid.rows - 2
  334.             xLeft = gGridArray(row, 0).left
  335.             xRight = gGridArray(row, gGrid.cols - 1).Right
  336.             yBottom = gGridArray(row, 0).Top
  337.             yTop = yBottom
  338.             Set shape = gPageBack.DrawLine(xLeft, yTop, xRight, yBottom)
  339.             shape.style = "_Gridline"
  340.         Next
  341.     End If
  342.     stat = DrawYield("", "", "")
  343.     ProgressGauge (25)
  344.     ' Instance each master in stencil
  345.     '
  346.     masterIndex = 1
  347.     For pageNumber = 1 To gDoc.PageCount
  348.         pageName = "Page " & pageNumber & " of " & gDoc.PageCount
  349.         stat = DrawYield("", pageName, "")
  350.         ' Create new page and set its background
  351.         '
  352.         Set Page = gDocDraw.Pages.Add
  353.         Page.Name = pageName
  354.         Page.Background = False
  355.         Page.BackPageFromName = gPageBack
  356.         ' Draw right footer on page
  357.         '
  358.         If gDoc.Footer = True Then
  359.             xLeft = gPage.pageWidth / 2
  360.             xRight = gPage.pageWidth - gPage.RightMargin
  361.             yTop = gPage.BottomMargin + gPage.Footer
  362.             Set shape = Page.DrawLine(xLeft, yTop, xRight, yTop)
  363.             shape.style = "_FootRight"
  364.             shape.text = Page.Name
  365.         End If
  366.         ' Drop each master on page
  367.         '
  368.         For row = gGrid.rows - 1 To 0 Step -1
  369.             For col = 0 To gGrid.cols - 1
  370.                 If masterIndex > masters.Count Then
  371.                     GoTo fexit
  372.                 End If
  373.                 ' Drop master in the center of the grid
  374.                 '
  375.                 Set master = masters(masterIndex)
  376.                 stat = DrawYield("", "", master.Name)
  377.                 If gDoc.properties = True Then
  378.                     ' Drop property label
  379.                     '
  380.                     xLeft = gGridArray(row, col).left + gPage.LabelWidth / 2
  381.                     yTop = gGridArray(row, col).Top
  382.                     Set shape = Page.Drop(label, xLeft, yTop)
  383.                     ' Drop property text
  384.                     '
  385.                     xLeft = gGridArray(row, col).left + gPage.LabelWidth + (gGrid.ColWidth - gPage.LabelWidth) / 2
  386.                     yTop = gGridArray(row, col).Top
  387.                     Set shape = Page.Drop(text, xLeft, yTop)
  388.                     shape.text = master.Name & Chr(10) & Chr(10) & master.Prompt
  389.                 End If
  390.                 'If master is empty, skip it
  391.                 If master.Shapes.Count > 0 Then
  392.                 
  393.                     xLeft = gGridArray(row, col).left + gGrid.ColWidth / 2
  394.                     yTop = gGridArray(row, col).Top - gGrid.RowHeight / 2
  395.                     ' Set the alertresponse so that the custom properties
  396.                     ' dialog doesn't stop us
  397.                     g_appVisio.AlertResponse = 1
  398.                     Set inst = Page.Drop(master, xLeft, yTop)
  399.                     g_appVisio.AlertResponse = 0
  400.         
  401.                     ' Fit in grid
  402.                     '
  403.                     If gDoc.resize = True Then
  404.                         ' Group the shape if not already a group
  405.                         '
  406.                         If inst.Type <> 2 Then
  407.                             inst.Group
  408.                             'Set inst = gWinDraw.Selection.Item(1)
  409.                             If g_appVisio.Version < 2.1 Then
  410.                                 Set inst = gWinDraw.Selection.Item(1)
  411.                             Else
  412.                                Set inst = inst.Parent
  413.                             End If
  414.                         End If
  415.                         GridFit row, col, inst  ' Resize the shape to fit in grid
  416.                         GridPos row, col, inst  ' Reposition the shape
  417.                     End If
  418.                 End If
  419.                 ProgressGauge (25 + masterIndex / masters.Count * 75)
  420.                 masterIndex = masterIndex + 1
  421.             Next
  422.         Next
  423.     Next
  424. fexit:
  425.     SetScreenUpdating (True)
  426.     g_appVisio.ActiveWindow.DeselectAll
  427.     g_appVisio.ActiveWindow.PageFromName = gDocDraw.Pages.Item(1) 'go to first page
  428.     End
  429. End Sub
  430. Private Function DrawYield(ByVal stencil As String, ByVal Page As String, ByVal master As String)
  431.     If stencil <> "" Then
  432.         label1.Caption = "Stencil:  " & stencil
  433.     End If
  434.     If Page <> "" Then
  435.         label2.Caption = "Page:  " & Page
  436.     End If
  437.     If master <> "" Then
  438.         label3.Caption = "Master:  " & master
  439.     End If
  440.     DoEvents
  441. End Function
  442. Private Sub Form_Load()
  443.     ' Initialize the form.
  444.     '
  445.     formInit frmProgress
  446.     ' Center the picture
  447.     imgStndoc.Top = pnlStndoc.Height / 2 - imgStndoc.Height / 2
  448.     imgStndoc.left = pnlStndoc.Width / 2 - imgStndoc.Width / 2
  449. End Sub
  450. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  451.     End
  452. End Sub
  453. Private Sub Form_Resize()
  454.     DoEvents
  455.     'Turn off screen updating
  456.     SetScreenUpdating (False)  'Turn off screen updating
  457.     DrawCreate
  458. End Sub
  459. '   Resize shape to fit in grid
  460. Private Sub GridFit(row, col, shape As Visio.shape)
  461.     Dim shapeWidth As Visio.Cell    ' cell object
  462.     Dim shapeHeight As Visio.Cell   ' cell object
  463.     Dim gridWidth
  464.     Dim gridHeight
  465.     Dim LabelHeight
  466.     Dim aspectRatio
  467.     ' General computations
  468.     '
  469.     Set shapeWidth = shape.Cells("Width")
  470.     Set shapeHeight = shape.Cells("Height")
  471.     LabelHeight = 0
  472.     If gDoc.properties = True Then
  473.         LabelHeight = gPage.LabelHeight
  474.     End If
  475.     gridWidth = gGrid.ColWidth - 2 * gPage.GridMargin
  476.     gridHeight = gGrid.RowHeight - LabelHeight - 2 * gPage.GridMargin
  477.     ' Is the shape too big for the grid
  478.     '
  479.     If shapeWidth <= gridWidth And shapeHeight <= gridHeight Then
  480.         Exit Sub      ' nothing to do
  481.     End If
  482.     ' Resize shape to fit in grid
  483.     '
  484.     aspectRatio = 1
  485.     If shapeHeight <> 0 Then
  486.         aspectRatio = shapeWidth / shapeHeight
  487.     End If
  488.     '   Adjust height
  489.     '
  490.     If shapeHeight > gridHeight Then
  491.         shapeHeight.FormulaForce = gridHeight
  492.         If shapeWidth > 0 Then
  493.             shapeWidth.FormulaForce = aspectRatio * gridHeight
  494.         End If
  495.     End If
  496.     '   Adjust width
  497.     '
  498.     If shapeWidth > gridWidth Then
  499.         shapeWidth.FormulaForce = gridWidth
  500.         If shapeHeight > 0 Then
  501.             shapeHeight.FormulaForce = gridWidth / aspectRatio
  502.         End If
  503.     End If
  504. End Sub
  505. ' Position shape in grid
  506. Private Sub GridPos(row, col, shape As Visio.shape)
  507.     Dim X
  508.     Dim Y
  509.     X = gGridArray(row, col).left + gGrid.ColWidth / 2
  510.     Y = gGridArray(row, col).Bottom + gGrid.RowHeight / 2
  511.     If gDoc.properties = True Then
  512.         Y = Y - gPage.LabelHeight / 2
  513.     End If
  514.     shape.SetCenter X, Y
  515. End Sub
  516. Private Sub ProgressGauge(ByVal percent As Integer)
  517.     Dim X As Single
  518.     Dim Y As Single
  519.     Dim t As String
  520.     ' Set coordinates for the right end of the rectangle
  521.     ' that displays the progress bar.
  522.     '
  523.     'y = Picture1.ScaleHeight
  524.     'x = percent * Picture1.ScaleWidth / 100
  525.     ' Draw the rectangle
  526.     '
  527.     'Picture1.Line (0, 0)-(x, y), QBColor(1), BF
  528.     'Picture1.Line (x, 0)-(Picture1.ScaleWidth, y), QBColor(7), BF
  529.     ' Center and draw the text
  530.     '
  531.     't = percent & "%"
  532.     'Picture1.CurrentY = (Picture1.ScaleHeight - Picture1.TextHeight(t)) / 2
  533.     'Picture1.CurrentX = (Picture1.ScaleWidth - Picture1.TextWidth(t)) / 2
  534.     Panel3D1.FloodPercent = percent
  535.     If percent > 45 Then
  536.         'Picture1.ForeColor = QBColor(1)
  537.         Panel3D1.ForeColor = &HFFFFFF
  538.     'Else
  539.         'Picture1.ForeColor = RGB(255, 255, 255)
  540.     End If
  541.     'Picture1.Print t
  542. End Sub
  543. Private Sub SetScreenUpdating(bUpdate As Integer)
  544.     If g_appVisio.Version < 2.1 Then
  545.         Exit Sub
  546.     Else
  547.        g_appVisio.ScreenUpdating = bUpdate
  548.     End If
  549. End Sub
  550.