作者quanyong (万般皆是命阿)
看板Visual_Basic
标题Re: ListBox里面显示的资料有办法直接显示在网页上吗
时间Wed May 2 11:03:31 2007
※ 引述《fumizuki (蒙面加菲狮)》之铭言:
: 要加入啊,不然 vb怎麽知道 MSComm1 是什麽东西
: 不过,MSComm的类型是控制项,是要挂在表单上的,
: 不知道 ActiveX DLL 可不可以这样子用@@
: 如果设定加入MSComm,测试不行的话,程式开始加上这一行:
: Set MSComm1 = CreateObject("MSCommLib.MSComm")
: VB6范例:
: Sub Open()
: '如果加入使用元件不行再试试看下面这一行
: 'Set MSComm1 = CreateObject("MSCommLib.MSComm")
: '其他必要的程式码自己再加上去
: If Not (MSComm1.PortOpen) Then
: MSComm1.PortOpen = True '开启串列连接埠
: End If
: End Sub
: Sub Close()
: If MSComm1.PortOpen Then
: MSComm1.PortOpen = False '关闭串列连接埠
: End If
: End Sub
: Function GetData()
: GetData = MSComm1.Input
: End Function
: 网页端范例:
: Set myobj = Server.CreateObject("MyProject.MyClass") '建立物件
: myobj.Open() '开启连接埠
: Response.Write(myobj.GetData()) '取得资料
: myobj.Close() '关闭连接埠
: Set myobj = Nothing '释放物件
不好意思
再请问你
你说的必要程式码是我原本打的MSCOMM通讯项的原始程式码吗
然後程式编排就像你上面打的那样吗
我照这样打过了
还是不能制成.DLL档案
我是不是哪里有打错ㄚ
因为我要制成.DLL档案时
然後第一排的Sub Open()
它显示"必须是识别项"
我也看不出来哪里出问题
再拜托高手大大你了
谢谢你
以下是我完整的MSCOMM程式码
Option Explicit
Private Const LB_SETHORIZONTALEXTENT = &H194
'宣告一个DLL内的外部程序
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Dim TempStr As String '用於读取暂存区资料
Dim TempBool As Boolean '判断资料是否已读取完毕
Private Sub Command1_Click()
'===将字串输出,在字串的前面加上字串长度与分隔字元===
If LTrim(Text1.Text) <> "" Then
MSComm1.Output = Len(Text1.Text) & "&RFID:" & Text1.Text
Text1.Text = ""
End If
End Sub
Private Sub Command2_Click()
Text1.Text = ""
End Sub
Private Sub Form_Load()
'===设定、开启串列连接埠===
With MSComm1
.CommPort = 1 '设定串列连接埠代号
.Handshaking = comXOnXoff
.NullDiscard = True
.RThreshold = 1
If Not (.PortOpen) Then
.PortOpen = True '开启串列连接埠
End If
End With
End Sub
Private Sub MSComm1_OnComm()
'===读取接收暂存区中的资料===
Dim TempLong As Long
Dim MaxLength As Integer '记录ListBox中的最大字串长度
Dim TempIndex As Integer '记录ListBox中最长字串的索引值
If TempBool And MSComm1.CommEvent = comEvReceive Then
TempStr = MSComm1.Input
'判断目前取得资料是否为所有资料
If Val(TempStr) + 3 = Len(TempStr) - InStr(1, TempStr, "&") Then
List1.AddItem Mid(TempStr, InStr(1, TempStr, "&") + 1), 0
TempStr = ""
MaxLength = Len(List1.List(0))
For TempLong = 0 To List1.ListCount - 1 '寻找最长字串
If Len(List1.List(TempLong)) >= MaxLength Then
TempIndex = TempLong
MaxLength = Len(List1.List(TempLong))
End If
Next TempLong
'产生一个水平卷轴
Call SendMessage(List1.hwnd, LB_SETHORIZONTALEXTENT, _
ByVal TextWidth(List1.List(TempIndex)) / 14.8, ByVal 0&)
Else
MSComm1.RThreshold = Val(TempStr) + 20 - Len(TempStr) + _
InStr(1, TempStr, "&") '设定最小接收字元数为尚未读取字元数
'去除字串长度与分隔字元
TempStr = Mid(TempStr, InStr(1, TempStr, "&") + 1)
TempBool = False
End If
Else
List1.AddItem TempStr + MSComm1.Input, 0
TempStr = ""
TempBool = True
MSComm1.RThreshold = 1
MaxLength = Len(List1.List(0))
For TempLong = 0 To List1.ListCount - 1
If Len(List1.List(TempLong)) >= MaxLength Then
TempIndex = TempLong
MaxLength = Len(List1.List(TempLong))
End If
Next TempLong
Call SendMessage(List1.hwnd, LB_SETHORIZONTALEXTENT, _
ByVal TextWidth(List1.List(TempIndex)) / 14.8, ByVal 0&)
End If
End Sub
If Not (MSComm1.PortOpen) Then
MSComm1.PortOpen = True '开启串列连接埠
End If
End Sub
拜托您了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.85.178