home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 6_2008-2009.ISO / data / zips / Mandelbrot2141371232009.psc / Form1.frm < prev    next >
Text File  |  2009-01-22  |  20KB  |  609 lines

  1. VERSION 5.00
  2. Begin VB.Form Form1 
  3.    BackColor       =   &H00000000&
  4.    BorderStyle     =   0  'None
  5.    Caption         =   "MSSS"
  6.    ClientHeight    =   4335
  7.    ClientLeft      =   -60
  8.    ClientTop       =   -75
  9.    ClientWidth     =   5775
  10.    ForeColor       =   &H00FFFFFF&
  11.    Icon            =   "Form1.frx":0000
  12.    LinkTopic       =   "Form1"
  13.    MouseIcon       =   "Form1.frx":164A
  14.    MousePointer    =   99  'Custom
  15.    ScaleHeight     =   4335
  16.    ScaleWidth      =   5775
  17.    ShowInTaskbar   =   0   'False
  18.    StartUpPosition =   3  'Windows Default
  19.    Begin VB.PictureBox Display 
  20.       Appearance      =   0  'Flat
  21.       BackColor       =   &H00000000&
  22.       BorderStyle     =   0  'None
  23.       ForeColor       =   &H80000008&
  24.       Height          =   1455
  25.       Left            =   0
  26.       ScaleHeight     =   1455
  27.       ScaleWidth      =   1455
  28.       TabIndex        =   1
  29.       Top             =   0
  30.       Visible         =   0   'False
  31.       Width           =   1455
  32.    End
  33.    Begin VB.PictureBox mem 
  34.       AutoRedraw      =   -1  'True
  35.       AutoSize        =   -1  'True
  36.       BackColor       =   &H00000000&
  37.       BorderStyle     =   0  'None
  38.       Height          =   1455
  39.       Left            =   0
  40.       ScaleHeight     =   1455
  41.       ScaleWidth      =   1455
  42.       TabIndex        =   2
  43.       Top             =   0
  44.       Visible         =   0   'False
  45.       Width           =   1455
  46.    End
  47.    Begin VB.Timer Timer2 
  48.       Enabled         =   0   'False
  49.       Interval        =   100
  50.       Left            =   480
  51.       Top             =   0
  52.    End
  53.    Begin VB.Timer Timer1 
  54.       Enabled         =   0   'False
  55.       Interval        =   1
  56.       Left            =   0
  57.       Top             =   0
  58.    End
  59.    Begin VB.PictureBox startimage 
  60.       AutoRedraw      =   -1  'True
  61.       BackColor       =   &H00000000&
  62.       BorderStyle     =   0  'None
  63.       Height          =   1455
  64.       Left            =   0
  65.       ScaleHeight     =   1455
  66.       ScaleWidth      =   1455
  67.       TabIndex        =   4
  68.       Top             =   0
  69.       Visible         =   0   'False
  70.       Width           =   1455
  71.    End
  72.    Begin VB.Label Label2 
  73.       Alignment       =   2  'Center
  74.       BackColor       =   &H00000000&
  75.       Caption         =   "Mandelbrot Set Screen Saver is rendering the first image..."
  76.       BeginProperty Font 
  77.          Name            =   "System"
  78.          Size            =   19.5
  79.          Charset         =   0
  80.          Weight          =   700
  81.          Underline       =   0   'False
  82.          Italic          =   0   'False
  83.          Strikethrough   =   0   'False
  84.       EndProperty
  85.       ForeColor       =   &H00808080&
  86.       Height          =   975
  87.       Left            =   0
  88.       TabIndex        =   3
  89.       Top             =   1680
  90.       Width           =   5775
  91.    End
  92.    Begin VB.Label Label1 
  93.       Height          =   255
  94.       Left            =   0
  95.       TabIndex        =   0
  96.       Top             =   0
  97.       Visible         =   0   'False
  98.       Width           =   135
  99.    End
  100. End
  101. Attribute VB_Name = "Form1"
  102. Attribute VB_GlobalNameSpace = False
  103. Attribute VB_Creatable = False
  104. Attribute VB_PredeclaredId = True
  105. Attribute VB_Exposed = False
  106. Public cc As Boolean
  107. Public firstimages As Boolean
  108. Public X1 As Double
  109. Public Y1 As Double
  110. Public X2 As Double
  111. Public Y2 As Double
  112.  
  113. Private Sub Display_KeyDown(KeyCode As Integer, Shift As Integer)
  114. If Timer1.Enabled = True Then End
  115. End Sub
  116.  
  117. Private Sub Display_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  118. If Timer1.Enabled = True Then End
  119. End Sub
  120.  
  121. Private Sub Display_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  122. If preview = False And Timer1.Enabled = True Then
  123. If Label1.Caption <> Str$(X) + "," + Str$(Y) Then
  124. If Label1.Caption = "" Then
  125. Label1.Caption = Str$(X) + "," + Str$(Y)
  126. Else
  127. End
  128. End If
  129. End If
  130. End If
  131. End Sub
  132.  
  133. Private Sub label2_KeyDown(KeyCode As Integer, Shift As Integer)
  134. If Timer1.Enabled = True Then End
  135. End Sub
  136.  
  137. Private Sub label2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  138. If Timer1.Enabled = True Then End
  139. End Sub
  140.  
  141. Private Sub label2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  142. If preview = False And Timer1.Enabled = True Then
  143. If Label1.Caption <> Str$(X) + "," + Str$(Y) Then
  144. If Label1.Caption = "" Then
  145. Label1.Caption = Str$(X) + "," + Str$(Y)
  146. Else
  147. End
  148. End If
  149. End If
  150. End If
  151. End Sub
  152.  
  153. Private Sub Form_Load()
  154. On Error GoTo fatalload
  155. If 0 = 1 Then
  156. fatalload:
  157. MsgBox ("Fatal Error. Error" + Str$(Err.Number) + ". " + Err.Description)
  158. End
  159. End If
  160. If Left$(Command$, 2) = "/p" Or Left$(Command$, 2) = "/P" Then End
  161. If (Command$ <> "/s" And Command$ <> "/S") And preview = False Then
  162. Load Form2
  163. Form2.Show
  164. Exit Sub
  165. Else
  166. If preview = False Then
  167. Open "mandelss.ini" For Binary As #1
  168. Get #1, 1, det
  169. Get #1, 2, rr
  170. Get #1, 3, rg
  171. Get #1, 4, rb
  172. Get #1, 5, mi
  173. Get #1, 6, hr
  174. Get #1, 7, hg
  175. Get #1, 8, hb
  176. Get #1, 9, theme
  177. Get #1, 10, zd
  178. Get #1, 11, zl
  179. Get #1, 12, zskip
  180. Close #1
  181. End If
  182. If det = 0 Then det = 60
  183. If mi = 0 Then mi = 128
  184. If zd = 0 Then zd = 15
  185. If zl = 0 Then zl = 30
  186. cc = True
  187. If rr = 0 And rg = 0 And rb = 0 Then cc = False
  188. Timer2.Enabled = True
  189. Randomize Timer
  190. X1 = -2
  191. Y1 = -1.5
  192. X2 = 1
  193. Y2 = 1.5
  194. firstimages = True
  195. End If
  196. End Sub
  197.  
  198. Private Sub form_KeyDown(KeyCode As Integer, Shift As Integer)
  199. If Timer1.Enabled = True Then End
  200. End Sub
  201.  
  202. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  203. If Timer1.Enabled = True Then End
  204. End Sub
  205.  
  206. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  207. If preview = False And Timer1.Enabled = True Then
  208. If Label1.Caption <> Str$(X) + "," + Str$(Y) Then
  209. If Label1.Caption = "" Then
  210. Label1.Caption = Str$(X) + "," + Str$(Y)
  211. Else
  212. End
  213. End If
  214. End If
  215. End If
  216. End Sub
  217.  
  218. Private Sub Timer1_Timer()
  219. On Error GoTo fatal
  220. If 0 = 1 Then
  221. fatal:
  222. End
  223. End If
  224. Dim z As complex
  225. Dim tz As complex
  226. Dim t As complex
  227. sc = (Y2 - Y1) / Form1.Height
  228. drr = rr / mi
  229. drg = rg / mi
  230. drb = rb / mi
  231. rzd = zd * 15
  232. rzl = zl * 15
  233. If cc = False Then
  234. If theme = 0 Then cm = 100 / mi
  235. If theme = 1 Then cm = (255 / mi) * 3
  236. If theme = 2 Then cm = (255 / mi) * 3
  237. If theme = 3 Then cm = (255 / mi) * 3
  238. Else
  239. cm = 1
  240. End If
  241. If X1 = -2 And X2 = 1 And Display.Visible = True And zskip > 0 Then
  242. Set mem.Picture = startimage.Image
  243. Else
  244. For i = 0 To Form1.Width Step det
  245. For j = 0 To Form1.Height Step det
  246. X = X1 + (i * sc)
  247. Y = Y1 + (j * sc)
  248.  
  249. t.r = X
  250. t.i = Y
  251.  
  252. z.r = 0
  253. z.i = 0
  254.  
  255. For i2 = 1 To mi
  256.     tz.r = (z.r * z.r - z.i * z.i) + t.r
  257.     tz.i = (z.r * z.i * 2) + t.i
  258.  
  259.     z = tz
  260.  
  261.     If (z.r * z.r) + (z.i * z.i) >= 4 Then
  262.         c = i2 * cm
  263.         GoTo done
  264.     End If
  265. Next
  266. c = 0
  267. done:
  268. If cc = False Then
  269. If theme = 0 Then mem.Line (i, j)-(i + det, j + det), RGB((c Mod 60) * 10, (c Mod 100) * 20, (c Mod 200) * 200), BF
  270. If theme >= 1 And theme <= 3 Then
  271.             If c < 256 Then
  272.                 cg = c
  273.                 cr = 256 - cg
  274.                 cb = 0
  275.             End If
  276.             If c >= 256 And c < 512 Then
  277.                 cb = c - 256
  278.                 cg = 255 - cb
  279.                 cr = 0
  280.             End If
  281.             If c >= 512 And c < 768 Then
  282.                 cr = c - 512
  283.                 cb = 255 - cr
  284.                 cg = 0
  285.             End If
  286.             If c = 0 Then
  287.                 cr = 0
  288.                 cg = 0
  289.                 cb = 0
  290.             End If
  291. 'If theme = 1 Then mem.PSet (i, j), RGB(cr, cg, cb)
  292. 'If theme = 2 Then mem.PSet (i, j), RGB(cb, cr, cg)
  293. 'If theme = 3 Then mem.PSet (i, j), RGB(cg, cb, cr)
  294. If theme = 1 Then mem.Line (i, j)-(i + det, j + det), RGB(cr, cg, cb), BF
  295. If theme = 2 Then mem.Line (i, j)-(i + det, j + det), RGB(cb, cr, cg), BF
  296. If theme = 3 Then mem.Line (i, j)-(i + det, j + det), RGB(cg, cb, cr), BF
  297. End If
  298. Else
  299. mem.Line (i, j)-(i + det, j + det), RGB(c * drr, c * drg, c * drb), BF
  300. End If
  301. Next
  302. DoEvents
  303. Next
  304. End If
  305. If Display.Visible = False Then
  306. Set startimage.Picture = mem.Image
  307. End If
  308. Display.Visible = True
  309.  
  310. If za >= zskip Or firstimages = True Then
  311. Set Display.Picture = mem.Image
  312. DoEvents
  313. rxy = Form1.Height / Form1.Width
  314. With Display
  315. Do
  316. ln = 0
  317. Do
  318. X = Int(Rnd * Form1.Width)
  319. Y = Int(Rnd * Form1.Height)
  320. Blue = Int(.Point(X, Y) / 65536)
  321. Green = Int((.Point(X, Y) - (Blue * 65536)) / 256)
  322. Red = (.Point(X, Y) - (Blue * 65536) - (Green * 256))
  323. If .Point(X, Y) <> 0 Then
  324. If cc = True Then
  325.     If (Red < (rr / 4) + 5 And Green < (rg / 4) + 5 And Blue < (rb / 4) + 5) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  326.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  327.     Y2 = (Y + rzl) * sc + Y1
  328.     X1 = (X - (rzl / rxy)) * sc + X1
  329.     Y1 = (Y - rzl) * sc + Y1
  330.     za = za + 1
  331.     GoTo finish
  332.     End If
  333.     If (Red < (rr / 3) + 5 And Green < (rg / 3) + 5 And Blue < (rb / 3) + 5 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  334.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  335.     Y2 = (Y + rzl) * sc + Y1
  336.     X1 = (X - (rzl / rxy)) * sc + X1
  337.     Y1 = (Y - rzl) * sc + Y1
  338.     za = za + 1
  339.     GoTo finish
  340.     End If
  341.     If (Red < (rr / 2) + 5 And Green < (rg / 2) + 5 And Blue < (rb / 2) + 5 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  342.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  343.     Y2 = (Y + rzl) * sc + Y1
  344.     X1 = (X - (rzl / rxy)) * sc + X1
  345.     Y1 = (Y - rzl) * sc + Y1
  346.     za = za + 1
  347.     GoTo finish
  348.     End If
  349. Else
  350. If (Red < 10 And Green >= 254 And Blue >= 254 And theme = 0) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  351. X2 = (X + (rzl / rxy) - rzl) * sc + X1
  352. Y2 = (Y + rzl) * sc + Y1
  353. X1 = (X - (rzl / rxy)) * sc + X1
  354. Y1 = (Y - rzl) * sc + Y1
  355. za = za + 1
  356. GoTo finish
  357. End If
  358. If theme = 1 Then
  359.     If (Red > 0 And Blue = 0 And Green <= 255) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  360.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  361.     Y2 = (Y + rzl) * sc + Y1
  362.     X1 = (X - (rzl / rxy)) * sc + X1
  363.     Y1 = (Y - rzl) * sc + Y1
  364.     za = za + 1
  365.     GoTo finish
  366.     End If
  367.     If (Red = 0 And Blue < 64 And Green > 0 And Green <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  368.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  369.     Y2 = (Y + rzl) * sc + Y1
  370.     X1 = (X - (rzl / rxy)) * sc + X1
  371.     Y1 = (Y - rzl) * sc + Y1
  372.     za = za + 1
  373.     GoTo finish
  374.     End If
  375.     If (Red = 0 And Blue < 128 And Green > 0 And Green <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  376.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  377.     Y2 = (Y + rzl) * sc + Y1
  378.     X1 = (X - (rzl / rxy)) * sc + X1
  379.     Y1 = (Y - rzl) * sc + Y1
  380.     za = za + 1
  381.     GoTo finish
  382.     End If
  383. End If
  384. If theme = 2 Then
  385.     If (Green > 0 And Red = 0 And Blue <= 255) And (Form1.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  386.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  387.     Y2 = (Y + rzl) * sc + Y1
  388.     X1 = (X - (rzl / rxy)) * sc + X1
  389.     Y1 = (Y - rzl) * sc + Y1
  390.     za = za + 1
  391.     GoTo finish
  392.     End If
  393.     If (Green = 0 And Red < 64 And Blue > 0 And Blue <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  394.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  395.     Y2 = (Y + rzl) * sc + Y1
  396.     X1 = (X - (rzl / rxy)) * sc + X1
  397.     Y1 = (Y - rzl) * sc + Y1
  398.     za = za + 1
  399.     GoTo finish
  400.     End If
  401.     If (Green = 0 And Red < 128 And Blue > 0 And Blue <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  402.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  403.     Y2 = (Y + rzl) * sc + Y1
  404.     X1 = (X - (rzl / rxy)) * sc + X1
  405.     Y1 = (Y - rzl) * sc + Y1
  406.     za = za + 1
  407.     GoTo finish
  408.     End If
  409. End If
  410. If theme = 3 Then
  411.     If (Blue > 0 And Green = 0 And Red <= 255) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  412.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  413.     Y2 = (Y + rzl) * sc + Y1
  414.     X1 = (X - (rzl / rxy)) * sc + X1
  415.     Y1 = (Y - rzl) * sc + Y1
  416.     za = za + 1
  417.     GoTo finish
  418.     End If
  419.     If (Blue = 0 And Green < 64 And Red > 0 And Red <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  420.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  421.     Y2 = (Y + rzl) * sc + Y1
  422.     X1 = (X - (rzl / rxy)) * sc + X1
  423.     Y1 = (Y - rzl) * sc + Y1
  424.     za = za + 1
  425.     GoTo finish
  426.     End If
  427.     If (Blue = 0 And Green < 128 And Red > 0 And Red <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  428.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  429.     Y2 = (Y + rzl) * sc + Y1
  430.     X1 = (X - (rzl / rxy)) * sc + X1
  431.     Y1 = (Y - rzl) * sc + Y1
  432.     za = za + 1
  433.     GoTo finish
  434.     End If
  435. End If
  436. End If
  437. End If
  438. ln = ln + 1
  439. If ln > 30000 Then DoEvents
  440. Loop Until ln = 30000
  441. DoEvents
  442. Loop Until X1 <> -2 Or X2 <> 1
  443. End With
  444. X1 = -2
  445. Y1 = -1.5
  446. X2 = 1
  447. Y2 = 1.5
  448. za = 0
  449. firstimages = False
  450. finish:
  451. If ln <> 30000 And (hr <> 0 Or hg <> 0 Or hb <> 0) Then Display.Line (X - (rzl / rxy) - 15, Y - rzl - 15)-(X + (rzl / rxy) + 15, Y + rzl + 15), RGB(hr, hg, hb), B
  452. Else
  453. '||| ZOOM SKIP |||
  454. 'vvv ZOOM SKIP vvv
  455. DoEvents
  456. rxy = Form1.Height / Form1.Width
  457. With mem
  458. Do
  459. ln = 0
  460. Do
  461. X = Int(Rnd * Form1.Width)
  462. Y = Int(Rnd * Form1.Height)
  463. Blue = Int(.Point(X, Y) / 65536)
  464. Green = Int((.Point(X, Y) - (Blue * 65536)) / 256)
  465. Red = (.Point(X, Y) - (Blue * 65536) - (Green * 256))
  466. If .Point(X, Y) <> 0 Then
  467. If cc = True Then
  468.     If (Red < (rr / 4) + 5 And Green < (rg / 4) + 5 And Blue < (rb / 4) + 5) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  469.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  470.     Y2 = (Y + rzl) * sc + Y1
  471.     X1 = (X - (rzl / rxy)) * sc + X1
  472.     Y1 = (Y - rzl) * sc + Y1
  473.     za = za + 1
  474.     GoTo finish2
  475.     End If
  476.     If (Red < (rr / 3) + 5 And Green < (rg / 3) + 5 And Blue < (rb / 3) + 5 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  477.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  478.     Y2 = (Y + rzl) * sc + Y1
  479.     X1 = (X - (rzl / rxy)) * sc + X1
  480.     Y1 = (Y - rzl) * sc + Y1
  481.     za = za + 1
  482.     GoTo finish2
  483.     End If
  484.     If (Red < (rr / 2) + 5 And Green < (rg / 2) + 5 And Blue < (rb / 2) + 5 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  485.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  486.     Y2 = (Y + rzl) * sc + Y1
  487.     X1 = (X - (rzl / rxy)) * sc + X1
  488.     Y1 = (Y - rzl) * sc + Y1
  489.     za = za + 1
  490.     GoTo finish2
  491.     End If
  492. Else
  493. If (Red < 10 And Green >= 254 And Blue >= 254 And theme = 0) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  494. X2 = (X + (rzl / rxy) - rzl) * sc + X1
  495. Y2 = (Y + rzl) * sc + Y1
  496. X1 = (X - (rzl / rxy)) * sc + X1
  497. Y1 = (Y - rzl) * sc + Y1
  498. za = za + 1
  499. GoTo finish2
  500. End If
  501. If theme = 1 Then
  502.     If (Red > 0 And Blue = 0 And Green <= 255) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  503.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  504.     Y2 = (Y + rzl) * sc + Y1
  505.     X1 = (X - (rzl / rxy)) * sc + X1
  506.     Y1 = (Y - rzl) * sc + Y1
  507.     za = za + 1
  508.     GoTo finish2
  509.     End If
  510.     If (Red = 0 And Blue < 64 And Green > 0 And Green <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  511.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  512.     Y2 = (Y + rzl) * sc + Y1
  513.     X1 = (X - (rzl / rxy)) * sc + X1
  514.     Y1 = (Y - rzl) * sc + Y1
  515.     za = za + 1
  516.     GoTo finish2
  517.     End If
  518.     If (Red = 0 And Blue < 128 And Green > 0 And Green <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  519.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  520.     Y2 = (Y + rzl) * sc + Y1
  521.     X1 = (X - (rzl / rxy)) * sc + X1
  522.     Y1 = (Y - rzl) * sc + Y1
  523.     za = za + 1
  524.     GoTo finish2
  525.     End If
  526. End If
  527. If theme = 2 Then
  528.     If (Green > 0 And Red = 0 And Blue <= 255) And (Form1.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  529.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  530.     Y2 = (Y + rzl) * sc + Y1
  531.     X1 = (X - (rzl / rxy)) * sc + X1
  532.     Y1 = (Y - rzl) * sc + Y1
  533.     GoTo finish2
  534.     End If
  535.     If (Green = 0 And Red < 64 And Blue > 0 And Blue <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  536.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  537.     Y2 = (Y + rzl) * sc + Y1
  538.     X1 = (X - (rzl / rxy)) * sc + X1
  539.     Y1 = (Y - rzl) * sc + Y1
  540.     za = za + 1
  541.     GoTo finish2
  542.     End If
  543.     If (Green = 0 And Red < 128 And Blue > 0 And Blue <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  544.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  545.     Y2 = (Y + rzl) * sc + Y1
  546.     X1 = (X - (rzl / rxy)) * sc + X1
  547.     Y1 = (Y - rzl) * sc + Y1
  548.     za = za + 1
  549.     GoTo finish2
  550.     End If
  551. End If
  552. If theme = 3 Then
  553.     If (Blue > 0 And Green = 0 And Red <= 255) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  554.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  555.     Y2 = (Y + rzl) * sc + Y1
  556.     X1 = (X - (rzl / rxy)) * sc + X1
  557.     Y1 = (Y - rzl) * sc + Y1
  558.     za = za + 1
  559.     GoTo finish2
  560.     End If
  561.     If (Blue = 0 And Green < 64 And Red > 0 And Red <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  562.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  563.     Y2 = (Y + rzl) * sc + Y1
  564.     X1 = (X - (rzl / rxy)) * sc + X1
  565.     Y1 = (Y - rzl) * sc + Y1
  566.     za = za + 1
  567.     GoTo finish2
  568.     End If
  569.     If (Blue = 0 And Green < 128 And Red > 0 And Red <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
  570.     X2 = (X + (rzl / rxy) - rzl) * sc + X1
  571.     Y2 = (Y + rzl) * sc + Y1
  572.     X1 = (X - (rzl / rxy)) * sc + X1
  573.     Y1 = (Y - rzl) * sc + Y1
  574.     za = za + 1
  575.     GoTo finish2
  576.     End If
  577. End If
  578. End If
  579. End If
  580. ln = ln + 1
  581. If ln > 30000 Then DoEvents
  582. Loop Until ln = 30000
  583. DoEvents
  584. Loop Until X1 <> -2 Or X2 <> 1
  585. End With
  586. X1 = -2
  587. Y1 = -1.5
  588. X2 = 1
  589. Y2 = 1.5
  590. za = 0
  591. firstimages = False
  592. finish2:
  593. End If
  594. End Sub
  595.  
  596. Private Sub Timer2_Timer()
  597. Timer1.Enabled = True
  598. Form1.WindowState = 2
  599. Form1.Show
  600. Display.Width = Form1.Width
  601. Display.Height = Form1.Height
  602. mem.Width = Form1.Width
  603. mem.Height = Form1.Height
  604. startimage.Width = Form1.Width
  605. startimage.Height = Form1.Height
  606. Label2.Left = (Form1.Width - 5775) / 2
  607. Label2.Top = (Form1.Height - 975) / 2
  608. End Sub
  609.