这段VB程序如何解释?最好能译成delphi。或告之delphi下如何实现。(100分)

  • 主题发起人 主题发起人 shy_cm
  • 开始时间 开始时间
S

shy_cm

Unregistered / Unconfirmed
GUEST, unregistred user!

Private Sub Picture1_Click()
Dim i As Integer
Dim x, y0, y1, y2 As Integer
Dim middle1 Asdo
uble

'Picture1.DrawStyle = 0
Picture1.Cls
Picture1.Scale (0, 0)-(1000, 400)
Picture1.Line (0, 60)-(1000, 60), RGB(0, 0, 0)
Picture1.Line (0, 160)-(1000, 160), RGB(0, 0, 0)
Picture1.Line (0, 260)-(1000, 260), RGB(0, 0, 0)
middle1 = (10000# / 100) '根据量程,计算单位象素分配的值 */
y0 = 200 - ((((dat(0) And &HFFF)) * (10000# / 4096#) - 5000#) / middle1)
'y0 = 60
x = 1: di = 4
For i = 0 To 5000 Step di
y1 = ((((dat(i) And &HFFF)) * (10# / 4096#) - 5#)) * 10
y2 = ((((dat(i + di) And &HFFF)) * (10# / 4096#) - 5#)) * 10
Picture1.Line (x, y0 - y1)-(x + 1, y0 - y2), RGB(255, 0, 0)
y1 = ((((dat(i + 1) And &HFFF)) * (10# / 4096#) - 5#)) * 10
y2 = ((((dat(i + 1 + di) And &HFFF)) * (10# / 4096#) - 5#)) * 10
Picture1.Line (x, y0 + 100 - y1)-(x + 1, y0 + 100 - y2), RGB(0, 255, 0)
y1 = ((((dat(i + 2) And &HFFF)) * (10# / 4096#) - 5#)) * 10
y2 = ((((dat(i + 2 + di) And &HFFF)) * (10# / 4096#) - 5#)) * 10

Picture1.Line (x, y0 + 200 - y1)-(x + 1, y0 + 200 - y2), RGB(0, 0, 255)
x = x + 1
Next i



End Sub
 
Private Sub Picture1_Click()
Dim i As Integer
Dim x, y0, y1, y2 As Integer
Dim middle1 Asdo
uble

'Picture1.DrawStyle = 0
Picture1.Cls
Picture1.Scale (0, 0)-(1000, 400)
//设置坐标,现在右下角坐标为1000,4000
Picture1.Line (0, 60)-(1000, 60), RGB(0, 0, 0)
Picture1.Line (0, 160)-(1000, 160), RGB(0, 0, 0)
Picture1.Line (0, 260)-(1000, 260), RGB(0, 0, 0)
// 画线,可用Canves.moveto 和 Canves.Lineto 代替
// 注意设置颜色 Canves.Brush.Color =RGB(xx,xx,xx)
middle1 = (10000# / 100) '根据量程,计算单位象素分配的值 */
y0 = 200 - ((((dat(0) And &HFFF)) * (10000# / 4096#) - 5000#) / middle1)
'y0 = 60
// &开头的是16进制数
// and, or 等是位运算
x = 1: di = 4
For i = 0 To 5000 Step di
y1 = ((((dat(i) And &HFFF)) * (10# / 4096#) - 5#)) * 10
y2 = ((((dat(i + di) And &HFFF)) * (10# / 4096#) - 5#)) * 10
Picture1.Line (x, y0 - y1)-(x + 1, y0 - y2), RGB(255, 0, 0)
y1 = ((((dat(i + 1) And &HFFF)) * (10# / 4096#) - 5#)) * 10
y2 = ((((dat(i + 1 + di) And &HFFF)) * (10# / 4096#) - 5#)) * 10
Picture1.Line (x, y0 + 100 - y1)-(x + 1, y0 + 100 - y2), RGB(0, 255, 0)
y1 = ((((dat(i + 2) And &HFFF)) * (10# / 4096#) - 5#)) * 10
y2 = ((((dat(i + 2 + di) And &HFFF)) * (10# / 4096#) - 5#)) * 10

Picture1.Line (x, y0 + 200 - y1)-(x + 1, y0 + 200 - y2), RGB(0, 0, 255)
x = x + 1
Next i


End Sub
待我有空我会将其译成Delphi
 
唉!英雄无觅孙仲谋处,看来只有wrench兄。
这是段12位采集卡程序, 其中涉及单位象素所表示的电压。
这中间主要不明白and如何用delphi表示?
再有就是#号的含义是什么?
 
>>and如何用delphi表示?
and
>>#号的含义是什么?
表示双精度型double
 
有没有谁能解释一下这一段
y1 = ((((dat(i) And &HFFF)) * (10# / 4096#) - 5#)) * 10
具体是在干什么?(4096可能是采集卡的精度12位, 10是量程)
 
时代呼唤英雄!!!?
 
y1:=((((dat and $hfff))*(10.00/4096.00)-5.00))*10
风流总被雨打风吹去!!
 
to wrench:
似乎$hfff应改为$fff,编译可通过,数值似乎也对。
对于这个算式的含义,真的无人知晓吗?
 
自己考虑了几天大致明白了。感谢各位了。
 
多人接受答案了。
 
后退
顶部