作者quanyong (万般皆是命阿)
看板Visual_Basic
标题Re: ListBox里面显示的资料有办法直接显示在网页上吗
时间Tue Apr 24 18:53:05 2007
: 你是使用 vb6 吗?
: 参考 vb研究小站 中的 VB6 专案模组简介,你要了解「物件类别」(*.cls) 的各种语法
: 专案类型指定为「ActiveX DLL」专案。
: 把mscomm相关的程式码写好後,档案-制成 myobj.dll,
: 然後 开始-执行 regsvr32.exe c:\myweb\bin\myobj.dll (假设路径,不要照抄喔)
: vb研究小站教你用 Dim myobj As New MyProject.MyClass 这样形式的写法,
: 你可以在网站(asp)中改成下面这种写法:
: Set myobj = Server.CreateObject("MyProject.MyClass") (也是假设的名称)
: Response.Write(myobj.getData) (还是假设的名称)
: 相关资讯就去看vb研究小站吧
首先先感谢你的指导
我照你说的方式去做
把档案制成 myobj.dll要储存时他就显示变数未定义
所以就没办法储存
你可以告诉我哪有有问题吗
以下是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 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
还有问题就是我需要在设定使用元件加入MSCOMM控制项吗?
我是有加入
其实我也不确定要不要加
如果执行成功後
是不是我在用MSCOMM读取资料的同时
网页上就会出现资料?
PS 抱歉..我程式方面真的很陌生
现在都在边学边用 所以遇到很多问题
所以如果我问的问题很白痴
就请你多见谅罗
最後再跟你说声谢谢
也拜托你替我解答罗
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.85.178