Re: ListBox裡面顯示的資料有辦法直接顯示在網頁上嗎
Sub Open()
Set MSComm1 = CreateObject("MSCommLib.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
If Not (MSComm1.PortOpen) Then
MSComm1.PortOpen = True '開啟串列連接埠
End If
End Sub
Function GetData()
GetData = MSComm1.Input
End Function
上述程式是我照您給我的範例和問過你又改正過的程式打的
可是要製成.DLL檔時還是顯示編輯錯誤 必須是識別項
好苦惱 進度好緊張
不知道又是哪裡出問題
拜託大大幫我除錯一下
感謝您
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.85.178
討論串 (同標題文章)
完整討論串 (本文為第 7 之 7 篇):