home *** CD-ROM | disk | FTP | other *** search
/ Programming Tool Box / SIMS_2.iso / vb_code1 / commdemo / module1.txt < prev    next >
Text File  |  1991-07-11  |  6KB  |  219 lines

  1. Sub Delay (amount As Single)
  2.     
  3.     t! = Timer
  4.     
  5.     While t! + amount > Timer
  6.     Wend
  7.  
  8. End Sub
  9.  
  10. Sub UpdateCaption (Msg$, Wait As Single)
  11.  
  12.     Dim wHeight As Integer
  13.     Dim wCenter As Integer
  14.  
  15.     If CommDemo.TextWidth(CaptionText$) > CommDemo.TextWidth(Msg$) Then
  16.  
  17.         CommDemo.CurrentX = CaptionLeft
  18.         CommDemo.CurrentY = CaptionCenter
  19.         CommDemo.ForeColor = CommDemo.BackColor
  20.         CommDemo.Print CaptionText$;
  21.         CommDemo.ForeColor = 0
  22.  
  23.     End If
  24.     
  25.     wHeight = CommDemo.TextHeight(Msg$)
  26.     wCenter = (CaptionHeight - wHeight) / 2
  27.  
  28.     CaptionCenter = CaptionTop + wCenter
  29.     CaptionText$ = Msg$
  30.     
  31.     CommDemo.CurrentX = CaptionLeft
  32.     CommDemo.CurrentY = CaptionCenter
  33.     CommDemo.Print CaptionText$;
  34.  
  35.     If Wait Then
  36.         Delay Wait
  37.     End If
  38.  
  39. End Sub
  40.  
  41. Function ReadCommPort (ReadAmount As Integer) As String
  42.     
  43.     Dim ApiErr As Integer
  44.     Dim EventMask As Integer
  45.     Dim Found As Integer
  46.  
  47.     If ReadAmount < 1 Then
  48.         ReadCommPort = ""
  49.         Exit Function
  50.     End If
  51.  
  52.     EventMask = CommEventMask
  53.     ApiErr = GetCommEventMask(CommHandle, EventMask)
  54.     
  55.     If ApiErr And EV_RXCHAR Then
  56.         Buffer$ = Space$(ReadAmount)
  57.         ApiErr = ReadComm(CommHandle, Buffer$, Len(Buffer$))
  58.  
  59.         If ApiErr < 0 Then
  60.             UpdateCaption " ReadCOMM API FAILED! (ERR " + Str$(ApiErr) + ")", 3
  61.             Buffer$ = ""
  62.         Else
  63.             Buffer$ = Left$(Buffer$, ApiErr)
  64.             
  65.             ' Expand CR to CR/LF for "Text" box display
  66.  
  67.             Found = 1
  68.             Do
  69.                 Found = InStr(Found, Buffer$, Chr$(13))
  70.                 If Found Then
  71.                     Buffer$ = Left$(Buffer$, Found) + Chr$(10) + Right$(Buffer$, Len(Buffer$) - Found)
  72.                     Found = Found + 1
  73.                 End If
  74.             Loop While Found
  75.         End If
  76.     End If
  77.  
  78.     If (ApiErr And EV_RXFLAG) And (CommEventMask And EV_RXFLAG) Then
  79.     End If
  80.  
  81.     If (ApiErr And EV_TXEMPTY) And (CommEventMask And EV_XFLAG) Then
  82.     End If
  83.  
  84.     If (ApiErr And EV_CTS) And (CommEventMask And EV_CTS) Then
  85.     End If
  86.  
  87.     If (ApiErr And EV_DSR) And (CommEventMask And EV_DSR) Then
  88.     End If
  89.  
  90.     If (ApiErr And EV_RLSD) And (CommEventMask And EV_RLSD) Then
  91.     End If
  92.  
  93.     If (ApiErr And EV_BREAK) And (CommEventMask And EV_BREAK) Then
  94.     End If
  95.  
  96.     If (ApiErr And EV_ERR) And (CommEventMask And EV_ERR) Then
  97.     End If
  98.     
  99.     If (ApiErr And EV_PERR) And (CommEventMask And EV_PERR) Then
  100.     End If
  101.     
  102.     If (ApiErr And EV_RING) And (CommEventMask And EV_RING) Then
  103.         UpdateCaption " Receive Window: RING! ", 0
  104.         Beep
  105.     End If
  106.     
  107.     ReadCommPort = Buffer$
  108.  
  109. End Function
  110.  
  111.  
  112. Sub WriteCommPort (Send$)
  113.  
  114.     ApiErr% = WriteComm(CommHandle, Send$, Len(Send$))
  115.  
  116.     If ApiErr% < 0 Then
  117.         UpdateCaption " WriteComm API Failed! (ERR " + Str$(ApiErr%) + ")", 2
  118.     End If
  119.  
  120. End Sub
  121.  
  122. Sub DisplayQBOpen (TempDCB As CommStateDCB, DevName As String, RB As Integer, TB As Integer, Interval As Integer)
  123.  
  124.     ParityChar$ = "NOEMS"
  125.  
  126.     A$ = " Open " + Chr$(34) + DevName
  127.     A$ = A$ + LTrim$(Str$(TempDCB.BaudRate)) + ","
  128.     A$ = A$ + Mid$(ParityChar$, Asc(TempDCB.Parity) + 1, 1) + ","
  129.     A$ = A$ + LTrim$(Str$(Asc(TempDCB.ByteSize))) + ","
  130.     
  131.     Select Case Asc(TempDCB.StopBits)
  132.         Case 0
  133.             B$ = "1"
  134.         Case 1
  135.             B$ = "1.5"
  136.         Case 2
  137.             B$ = "2"
  138.         Case Else
  139.     End Select
  140.  
  141.     A$ = A$ + B$ + ","
  142.     
  143.     A$ = A$ + "RB" + LTrim$(Str$(RB)) + ","
  144.     A$ = A$ + "TB" + LTrim$(Str$(TB)) + ","
  145.     A$ = A$ + "CD" + LTrim$(Str$(TempDCB.RlsTimeOut)) + ","
  146.     A$ = A$ + "CS" + LTrim$(Str$(TempDCB.CtsTimeOut)) + ","
  147.     A$ = A$ + "DS" + LTrim$(Str$(TempDCB.DsrTimeOut)) + ","
  148.     A$ = A$ + "TI" + LTrim$(Str$(Interval))
  149.     
  150.     A$ = A$ + Chr$(34)
  151.  
  152.     UpdateCaption A$, 0
  153.  
  154. End Sub
  155.  
  156. Sub Remove_Items_From_SysMenu (A_Form As Form)
  157.  
  158.     HSysMenu = GetSystemMenu(A_Form.Hwnd, 0)
  159.   
  160.     R = RemoveMenu(HSysMenu, 8, MF_BYPOSITION) 'Switch to
  161.     R = RemoveMenu(HSysMenu, 7, MF_BYPOSITION) 'Separator
  162.     R = RemoveMenu(HSysMenu, 5, MF_BYPOSITION) 'Separator
  163.     R = RemoveMenu(HSysMenu, 4, MF_BYPOSITION) 'Maximize
  164.     R = RemoveMenu(HSysMenu, 3, MF_BYPOSITION) 'Minimize
  165.     R = RemoveMenu(HSysMenu, 2, MF_BYPOSITION) 'Size
  166.     R = RemoveMenu(HSysMenu, 0, MF_BYPOSITION) 'Restore
  167.  
  168. End Sub
  169.  
  170. Sub CenterDialog (A_Form As Form)
  171.  
  172.     Dim cLeft As Integer
  173.     Dim cTop As Integer
  174.  
  175.     cLeft = (Screen.Width - A_Form.Width) / 2
  176.     cTop = (Screen.Height - A_Form.Height) / 2
  177.  
  178.     A_Form.Move cLeft, cTop
  179.  
  180. End Sub
  181.  
  182. Sub Draw3d (wLeft As Integer, wTop As Integer, wWidth As Integer, wHeight As Integer, A_Form As Form)
  183.     Dim LeftY As Integer
  184.     Dim LeftX As Integer
  185.     
  186.     Dim RightY As Integer
  187.     Dim RightX As Integer
  188.  
  189.     Dim Depth As Integer
  190.  
  191.     Dim OffSet As Integer
  192.     Dim SetIn As Integer
  193.  
  194.     OffSet = 15
  195.     SetIn = 1
  196.     
  197.     ' Draw the Black and White lines to give a "Set In" effect
  198.     ' around the text and buttons
  199.  
  200.     For Depth = OffSet To OffSet * SetIn Step OffSet
  201.         
  202.         LeftX = wLeft - Depth
  203.         LeftY = wTop - Depth
  204.         RightX = wLeft + wWidth + Depth
  205.         RightY = wTop + wHeight + Depth
  206.  
  207.         ' Draw the Top and Bottom Lines
  208.         A_Form.Line (LeftX, LeftY)-(RightX, LeftY), QBColor(0)
  209.         A_Form.Line (LeftX, RightY)-(RightX, RightY), QBColor(15)
  210.         
  211.         ' Draw the Left and Right Lines
  212.         A_Form.Line (LeftX - OffSet, LeftY)-(LeftX - OffSet, RightY + OffSet), QBColor(0)
  213.         A_Form.Line (RightX, LeftY)-(RightX, RightY + OffSet), QBColor(15)
  214.  
  215.     Next Depth
  216.  
  217. End Sub
  218.  
  219.