home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / CODE_UPLOAD91038182000.psc / MBoxMod.bas < prev    next >
Encoding:
BASIC Source File  |  2000-08-18  |  6.9 KB  |  293 lines

  1. Attribute VB_Name = "MBoxMod"
  2. Public mbReturn%
  3.  
  4. Public Enum MBoxButtons
  5.  mbOkOnly
  6.  mbAgreeOnly
  7.  mbOKNoWay
  8.  mbOKCancel
  9.  mbYesNo
  10.  mbYesNoCancel
  11.  mbExitNoWay
  12.  mbExitNoWayCancel
  13.  mbSaveDontSave
  14.  mbLoadDontLoad
  15.  mbPrintDontPrint
  16.  mbEnterLeave
  17.  mbEnterLeaveCancel
  18.  mbIAgreeDontAgree
  19.  End Enum
  20.  
  21. Public Enum MBoxStyle
  22. mbFlat
  23. mbAutumn
  24. mbSpring
  25. mbSummer
  26. mbWinter
  27. mbPurple
  28. mbPink
  29. mbBlue
  30. mbYellow
  31. mbBrown
  32. End Enum
  33.  
  34. Public Enum IconValue
  35.  mbNoIcon
  36.  mbQuestion
  37.  mbInfo
  38.  mbNoEntry
  39.  mbExclamation
  40.  mbSave
  41.  mbOpen
  42.  mbPrint
  43.  mbCritical
  44.  mbTrash
  45. End Enum
  46.  
  47. Public Function Msbox(Message As Variant, Optional Style As MBoxStyle, Optional Buttons As MBoxButtons, Optional MBoxIcon As IconValue, Optional Title As Variant)
  48. Dim xx%, yy%, R1, R2, G1, G2, B1, B2, Rs, Gs, Bs, Rx, Gx, Bx
  49. Dim LCol1&, LCol2&, Border1&, Border2&
  50.  
  51. On Error Resume Next
  52. If IsMissing(Title) Then Title = App.Title
  53. '***  set default
  54. With MBox
  55.     MBox.ScaleMode = 3
  56.     MBox.Width = 4605
  57.     MBox.Height = 2190
  58.     .Label3.Top = 2
  59.     .Pic1.Move 3, 3, MBox.ScaleWidth - 6, 18
  60.     .Label2.Caption = ""
  61.     .Label2.Move 9, 27, 249, 16
  62.     
  63. '*** set style-colors
  64. If Style = mbFlat Then
  65. MBox.BackColor = &HC0C0C0
  66. R1 = &H80: R2 = &H80
  67. G1 = &H80: G2 = &H80
  68. B1 = &H80: B2 = &H80
  69. LCol1 = &HFFFFFF
  70. Border1 = &HE0E0E0
  71. Border2 = &H606060
  72. GoTo SkipColors
  73. End If
  74.  
  75. If Style = mbAutumn Then
  76. MBox.BackColor = &HA0C0C0
  77. R1 = &HA0: R2 = &H60
  78. G1 = &HA0: G2 = &H60
  79. B1 = &H80: B2 = &H40
  80. LCol1 = &HC0F0F0
  81. LCol2 = &H3F0F0F
  82. Border1 = &HB0D0D0
  83. Border2 = &H608080
  84. End If
  85. If Style = mbSpring Then
  86. MBox.BackColor = &H80C0A0
  87. R1 = &H80: R2 = &H20
  88. G1 = &HA0: G2 = &H40
  89. B1 = &H60: B2 = &H0
  90. LCol1 = &H80F0C0
  91. LCol2 = &H601040
  92. Border1 = &H90D0B0
  93. Border2 = &H406060
  94. End If
  95. If Style = mbSummer Then
  96. MBox.BackColor = &H2060E0
  97. R1 = &HD0: R2 = &H40
  98. G1 = &H60: G2 = &H0
  99. B1 = &H40: B2 = &H0
  100. LCol1 = &H40A0F0
  101. LCol2 = &H103020
  102. Border1 = &H7090D0
  103. Border2 = &H102040
  104. End If
  105. If Style = mbWinter Then
  106. MBox.BackColor = &HE0A0A0
  107. R1 = &HF0: R2 = &H60
  108. G1 = &HF0: G2 = &H60
  109. B1 = &HF0: B2 = &H80
  110. LCol1 = &H804040
  111. LCol2 = &H403000
  112. Border1 = &HF08080
  113. Border2 = &H802040
  114. End If
  115. If Style = mbPurple Then
  116. MBox.BackColor = &HA090A0
  117. R1 = &HA0: R2 = &H40
  118. G1 = &H90: G2 = &H0
  119. B1 = &HA0: B2 = &H40
  120. LCol1 = &HC0C0C0
  121. LCol2 = &H604010
  122. Border1 = &H908090
  123. Border2 = &H402040
  124. End If
  125. If Style = mbPink Then
  126. MBox.BackColor = &HC0C0F0
  127. R1 = &HD0: R2 = &H80
  128. G1 = &HA0: G2 = &H70
  129. B1 = &HA0: B2 = &H70
  130. LCol1 = &H202080
  131. LCol2 = &H40
  132. Border1 = &HC0C0F0
  133. Border2 = &H8080A0
  134. End If
  135. If Style = mbBlue Then
  136. MBox.BackColor = &HD05060
  137. R2 = &H70: R1 = &H30
  138. G2 = &H70: G1 = &H0
  139. B2 = &HF0: B1 = &H20
  140. LCol1 = &HFFFF00
  141. LCol2 = &HC0C080
  142. Border1 = &HD05050
  143. Border2 = &H802020
  144. End If
  145. If Style = mbYellow Then
  146. MBox.BackColor = &H60E0E0
  147. R1 = &HF0: R2 = &HA0
  148. G1 = &HF0: G2 = &HA0
  149. B1 = &H80: B2 = &H20
  150. LCol1 = &H206000
  151. LCol2 = &H106040
  152. Border1 = &H80FFFF
  153. Border2 = &H208080
  154. End If
  155. If Style = mbBrown Then
  156. MBox.BackColor = &H1060A0
  157. R1 = &HF0: R2 = &H80
  158. G1 = &HA0: G2 = &H30
  159. B1 = &H60: B2 = &H20
  160. LCol1 = &H20F0A0
  161. LCol2 = &H10E040
  162. Border1 = &H2080F0
  163. Border2 = &H104080
  164. End If
  165. '*** set colors
  166. SkipColors:
  167. .Label3.ForeColor = LCol1
  168. .Label1(0).ForeColor = LCol1
  169. .Label1(1).ForeColor = LCol1
  170. .Label1(2).ForeColor = LCol1
  171. .Label2.ForeColor = LCol2
  172.  
  173. '*** set gradient
  174. Rx = R1: Gx = G1: Bx = B1
  175. Rs = (R1 - R2) / (.Pic1.ScaleHeight - 1)
  176. Gs = (G1 - G2) / (.Pic1.ScaleHeight - 1)
  177. Bs = (B1 - B2) / (.Pic1.ScaleHeight - 1)
  178.     For xx = 0 To .Pic1.Height - 1
  179.     .Pic1.Line (0, xx)-(.Pic1.Width, xx), RGB(Rx, Gx, Bx)
  180.     For yy = 0 To 2
  181.         .But1(yy).Line (0, xx)-(.But1(yy).Width, xx), RGB(Rx, Gx, Bx)
  182.     Next yy
  183.     Rx = Rx - Rs
  184.     Gx = Gx - Gs
  185.     Bx = Bx - Bs
  186. Next xx
  187.  
  188. '*** setborders
  189. MBox.Line (0, 0)-(MBox.ScaleWidth - 1, MBox.ScaleHeight - 1), Border1, B
  190. MBox.Line (1, 1)-(MBox.ScaleWidth - 2, MBox.ScaleHeight - 2), Border2, B
  191. For xx = 0 To 2
  192. .But1(xx).Line (0, 0)-(.But1(xx).Width - 1, .But1(xx).Height - 1), Border1, B
  193. .But1(xx).Line (0, .But1(xx).Height - 1)-(.But1(xx).Width, .But1(xx).Height - 1), Border2
  194. .But1(xx).Line (.But1(xx).Width - 1, 0)-(.But1(xx).Width - 1, .But1(xx).Height - 1), Border2
  195. Next xx
  196.  
  197. '*** set buttons
  198. For xx = 0 To 2
  199. .Label1(xx).Caption = ""
  200. .Label1(xx).Move 0, 2
  201. Next xx
  202.  
  203. If Buttons = mbOkOnly Then
  204.    .Label1(0).Caption = "OK"
  205. End If
  206. If Buttons = mbAgreeOnly Then
  207. .Label1(0).Caption = "Agree !"
  208. End If
  209. If Buttons = mbOKNoWay Then
  210.    .Label1(0).Caption = "OK"
  211.    .Label1(1).Caption = "No way !"
  212. End If
  213. If Buttons = mbOKCancel Then
  214.    .Label1(0).Caption = "OK"
  215.    .Label1(1).Caption = "Cancel"
  216. End If
  217. If Buttons = mbYesNo Then
  218.    .Label1(0).Caption = "Yes"
  219.    .Label1(1).Caption = "No"
  220. End If
  221. If Buttons = mbYesNoCancel Then
  222.    .Label1(0).Caption = "Yes"
  223.    .Label1(1).Caption = "No"
  224.    .Label1(2).Caption = "Cancel"
  225. End If
  226. If Buttons = mbExitNoWay Then
  227.    .Label1(0).Caption = "Exit"
  228.    .Label1(1).Caption = "No way !"
  229. End If
  230. If Buttons = mbExitNoWayCancel Then
  231.    .Label1(0).Caption = "Exit"
  232.    .Label1(1).Caption = "No way !"
  233.    .Label1(2).Caption = "Cancel"
  234. End If
  235. If Buttons = mbSaveDontSave Then
  236.    .Label1(0).Caption = "Save"
  237.    .Label1(1).Caption = "Don't Save"
  238. End If
  239. If Buttons = mbLoadDontLoad Then
  240.    .Label1(0).Caption = "Load"
  241.    .Label1(1).Caption = "Don't Load"
  242. End If
  243. If Buttons = mbPrintDontPrint Then
  244.    .Label1(0).Caption = "Print"
  245.    .Label1(1).Caption = "Don't Print"
  246. End If
  247. If Buttons = mbEnterLeave Then
  248.    .Label1(0).Caption = "Enter"
  249.    .Label1(1).Caption = "Leave"
  250. End If
  251. If Buttons = mbEnterLeaveCancel Then
  252.    .Label1(0).Caption = "Enter"
  253.    .Label1(1).Caption = "Leave"
  254.    .Label1(2).Caption = "Cancel"
  255. End If
  256. If Buttons = mbIAgreeDontAgree Then
  257.    .Label1(0).Caption = "Agree !"
  258.    .Label1(1).Caption = "Don't Agree !"
  259. End If
  260.  
  261. '***  position buttons
  262. .But1(1).Visible = False
  263. .But1(2).Visible = False
  264.     If .Label1(1) = "" And .Label1(2) = "" Then
  265.     .But1(0).Move (MBox.ScaleWidth / 2) - (.But1(0).Width / 2), 117
  266.     End If
  267.     If .Label1(1) <> "" And .Label1(2) = "" Then
  268.     .But1(0).Move (MBox.ScaleWidth / 2) - (.But1(0).Width) - 6, 117
  269.     .But1(1).Move (MBox.ScaleWidth / 2) + 6, 117
  270.     .But1(1).Visible = True
  271.     End If
  272.     If .Label1(1) <> "" And .Label1(2) <> "" Then
  273.     .But1(1).Move (MBox.ScaleWidth / 2) - (.But1(0).Width / 2), 117
  274.     .But1(0).Move (MBox.ScaleWidth / 2) - (.But1(0).Width / 2) - .But1(0).Width - 6, 117
  275.     .But1(2).Move (MBox.ScaleWidth / 2) + (.But1(0).Width / 2) + 6, 117
  276.     .But1(1).Visible = True
  277.     .But1(2).Visible = True
  278.     End If
  279.     
  280. '*** set icon
  281. .Image1.Picture = MBox.ImageList1.ListImages(MBoxIcon).Picture
  282.  
  283. '*** set text
  284. .Label2.Caption = Message
  285. If .Label2.Width > 249 Then Label2.Width = 249
  286. If .Label2.Height > 78 Then .Label2.Height = 78
  287. .Label2.Top = (MBox.ScaleHeight / 2) - (.Label2.Height / 2) - 5
  288. MBox.Label3 = Title
  289.  
  290. End With
  291. MBox.Show 1
  292. End Function
  293.