home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Programmer'…arterly (Limited Edition) / Visual_Basic_Programmers_Journal_VB-CD_Quarterly_Limited_Edition_1995.iso / code / ch29code / frmlomem.frm (.txt) < prev    next >
Visual Basic Form  |  1995-08-02  |  5KB  |  116 lines

  1. VERSION 4.00
  2. Begin VB.Form frmLowMem 
  3.    BackColor       =   &H00C0C0C0&
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    ClientHeight    =   285
  6.    ClientLeft      =   1080
  7.    ClientTop       =   1515
  8.    ClientWidth     =   3105
  9.    ControlBox      =   0   'False
  10.    Height          =   690
  11.    Left            =   1020
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   285
  16.    ScaleWidth      =   3105
  17.    Top             =   1170
  18.    Width           =   3225
  19.    Begin MSComDlg.CommonDialog cdlg 
  20.       Left            =   45
  21.       Top             =   -135
  22.       _Version        =   65536
  23.       _ExtentX        =   847
  24.       _ExtentY        =   847
  25.       _StockProps     =   0
  26.       CancelError     =   -1  'True
  27.       DialogTitle     =   "Select a Test Application"
  28.       FileName        =   "write.exe"
  29.       Filter          =   "Applications (*.exe)|*.exe"
  30.       FilterIndex     =   1
  31.    End
  32.    Begin VB.Label lblMsg 
  33.       Alignment       =   2  'Center
  34.       BackStyle       =   0  'Transparent
  35.       Caption         =   "Label1"
  36.       Height          =   195
  37.       Left            =   135
  38.       TabIndex        =   0
  39.       Top             =   45
  40.       Width           =   2685
  41.    End
  42. Attribute VB_Name = "frmLowMem"
  43. Attribute VB_Creatable = False
  44. Attribute VB_Exposed = False
  45. '************************************************************
  46. ' FRMLOMEM.FRM - Demonstrates good error handling techniques.
  47. '************************************************************
  48. Option Explicit
  49. '************************************************************
  50. ' Centers the form
  51. '************************************************************
  52. Private Sub Form_Load()
  53.     '********************************************************
  54.     ' Tell your app where to go when a error occurs.
  55.     '********************************************************
  56.     On Error GoTo Form_Load_Err
  57.     '********************************************************
  58.     ' Center the form and the label.
  59.     '********************************************************
  60.     Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2
  61.     lblMsg.Move (ScaleWidth - lblMsg.Width) / 2, _
  62.                 (ScaleHeight - lblMsg.Height) / 2
  63.     '********************************************************
  64.     ' Raise an error to simulate a low memory situation.
  65.     '********************************************************
  66.     Err.Raise InputBox("Enter a error number:", Default:=7)
  67.     Exit Sub
  68. Form_Load_Err:
  69.     '********************************************************
  70.     ' When a error is triggered, jump to the error handler.
  71.     '********************************************************
  72.     ErrHandler Err.Number, "Form_Load"
  73.     End
  74. End Sub
  75. '************************************************************
  76. ' A generic error handler.
  77. '************************************************************
  78. Sub ErrHandler(iErr%, sCallingProc$)
  79. Dim msg$, res%
  80.     '********************************************************
  81.     ' Prevent crashes in your error handler with Resume Next
  82.     '********************************************************
  83.     On Error Resume Next
  84.     '********************************************************
  85.     ' If out of memory error, then tell use to free memory
  86.     '********************************************************
  87.     If iErr = 7 Or iErr = 31001 Then
  88.         '****************************************************
  89.         ' Here is a good place to unload any picture boxes,
  90.         ' hide unnecessary controls, close DDE links or OLE
  91.         ' objects, erase arrays, and set object variables
  92.         ' = Nothing.
  93.         '****************************************************
  94.         msg = "Your system is extremely low on memory, so "
  95.         msg = msg & "please close any applications "
  96.         msg = msg & "that you (or this application) are "
  97.         msg = msg & "not using."
  98.     '********************************************************
  99.     ' Otherwise tell the user what error occurred, and where
  100.     ' it was triggered. (This is useful during tech support
  101.     ' calls).
  102.     '********************************************************
  103.     Else
  104.         msg = "A """ & Error(iErr) & """ error has occurred "
  105.         msg = msg & "in this applications " & sCallingProc
  106.         msg = msg & " procedure. " & vbLf & vbLf & "Please "
  107.         msg = msg & "consult ""Appendix E: Error Messages"" "
  108.         msg = msg & "for instructions on how to correct "
  109.         msg = msg & "this error."
  110.     End If
  111.     '********************************************************
  112.     ' Display the appropriate error message.
  113.     '********************************************************
  114.     MsgBox msg, vbExclamation
  115. End Sub
  116.