泉州八仙过海旅游项目:VB高手进!!急!!!

来源:百度文库 编辑:高校问答 时间:2024/05/06 12:03:10
下面的程序是设计三角函数的代码,但无法自动演示,请问错误在哪???
Option Explicit
Const dw As Integer = 400
Const picw = 9000
Const pich = 7000
Dim a As Integer
Dim w As Integer
Dim f As Single
Public Sub drawzbz()
pic.ForeColor = QBColor(0)
pic.Line (picw / 2, 0)-(picw / 2, pich)
pic.Line (0, pich / 2)-(picw, pich / 2)

End Sub

Private Sub csza_Change()
a = csza.Value
csa.Caption = "A=" + Str(a)

End Sub

Private Sub cszf_Change()
f = cszf.Value
csf.Caption = "f=" + Str(f)
End Sub

Private Sub cszw_Change()
w = cszw.Value
csw.Caption = "w=" + Str(w)

End Sub

Private Sub Form_Load()
Form1.Show
Call drawzbz
selec.BackColor = QBColor(0)
a = 1
w = 1
f = 0

End Sub
Public Sub drawhs(a As Integer, w As Integer, f As Single, c As Integer)
Dim sd As Single
Dim i As Single
Dim x0, y0, X, Y As Single

If sd1 Then
sd = 0.01
End If
If sd2 Then
sd = 0.1
End If
If sd3 Then
sd = 1
End If

If selesin.Value = 1 Then
pic.ForeColor = QBColor(c)
For i = 0 To picw - 1 Step sd
x0 = (i - picw / 2) / dw
y0 = a * Sin(w * x0 + f)
X = x0 * dw + picw / 2
Y = -y0 * dw + pich / 2
pic.PSet (X, Y)
Next i
End If

If selecos.Value = 1 Then
pic.ForeColor = QBColor(c + 1)
For i = 0 To picw - 1 Step sd
x0 = (i - picw / 2) / dw
y0 = a * Cos(w * x0 + f)
X = x0 * dw + picw / 2
Y = -y0 * dw + pich / 2
pic.PSet (X, Y)
Next i
End If

If seletan.Value = 1 Then
pic.ForeColor = QBColor(c + 2)
For i = 0 To picw - 1 Step sd
x0 = (i - picw / 2) / dw
y0 = a * Sin(w * x0 + f)
X = x0 * dw + picw / 2
Y = -y0 * dw + pich / 2
pic.PSet (X, Y)
Next i
End If

If selectan.Value = 1 Then
pic.ForeColor = QBColor(c + 3)
For i = 0 To picw - 1 Step sd
x0 = (i - picw / 2) / dw
If Tan(w * x0 + f) <> 0 Then
y0 = a / Tan(w * x0 + f)
X = x0 * dw + picw / 2
Y = -y0 * dw + pich / 2
pic.PSet (X, Y)
End If
Next i
End If

End Sub

Private Sub Hscolor_Change()
selec.BackColor = QBColor(Hscolor.Value)

End Sub

Private Sub hz_Click()
Call drawzbz
Call drawhs(a, w, f, Hscolor.Value)

End Sub

Private Sub qp_Click()
pic.Cls
Call drawzbz

End Sub

Private Sub tc_Click()
End

End Sub

Private Sub zda_Click()
Dim i As Single
pic.Cls
a = -10
Call drawhs(a, w, f, Hscolor.Value)
For i = -9 To 10
a = i
csza.Value = a
Call drawhs(a - 1, w, f, 15)
Call drawzbz
Call drawhs(a, w, f, Hscolor.Value)
Next i

End Sub

Private Sub zdf_Click()
Dim i As Single
pic.Cls
f = -10
Call drawhs(a, w, f, Hscolor.Value)
For i = -9 To 10
f = i
cszf.Value = f
Call drawhs(a, w, f - 1, 15)
Call drawzbz
Call drawhs(a, w, f, Hscolor.Value)
Next i

End Sub

Private Sub zdw_Click()
Dim i As Single
pic.Cls
w = -10
Call drawhs(a, w, f, Hscolor.Value)
For i = -9 To 10
w = i
cszf.Value = w
Call drawhs(a, w - 1, f, 15)
Call drawzbz
Call drawhs(a, w, f, Hscolor.Value)
Next i

End Sub

经仔细查看你的代码,未发现明显错误,估计你用的图片框pic其属性AutoRedraw未设置为TRUE而造成没显示。
另外从那些按钮的Click事件看,不知你是否在窗体上添加了那些按钮控件并正确命名。

贴Form1内容上来.现在这样不能判断.不过你Load中的确没啥呀,没什么自动的代码.