![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - [請教] VB高手語法涵義
(https://www.pcdvd.com.tw/showthread.php?t=559866)
|
---|
[請教] VB高手語法涵義
小弟想 請教一下板上的VB高手
下面這行VB註解 有何涵義呢~? 假如要用中文註解 該如何解釋較妥當 Text.Text = Winsock1(i).RemoteHostIP & ":" & str & vbCrLf & Text.Text 因為友人請小弟幫忙...小弟對這方面不太熟悉 網路找到的...也不太了解 所以想請教一下是否有高手能解惑 感激不盡:) |
text.text的內容變成由以下內容連接
Winsock1(i).RemoteHostIP後接:後接str後接vbCrLf後接原來的內容(Text.Text) 就是這樣....怎麼潤飾自己想 這種問題執行完給它顯示一下就知道了,我都這樣 |
引用:
嗯 ...您好請問 如果要用中文註解潤飾的話 該如何回答呢...? 對方就是問我中文 可是我不曉得該如何解釋 因為我對這方面不是在行 所以... :think: |
貼一小行是怎樣
Text.Text = Winsock1(i).RemoteHostIP & ":" & str & vbCrLf & Text.Text 應該是個迴圈吧 把winsock1所有的ip顯示到text上 |
引用:
我也不曉得 對方就是請問我這行VB語法 我不是很在行 所以才會上來問問... 下面是原始語法 不過他只問我這行 Text3.Text = Winsock1(i).RemoteHostIP & ":" & str & vbCrLf & Text3.Text Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long) Dim str As String Winsock1(Index).GetData str Text3.Text = Winsock1(i).RemoteHostIP & ":" & str & vbCrLf & Text3.Text For i = 1 To 30 If Winsock1(i).State = sckConnected Then Winsock1(i).SendData str DoEvents End If Next i End Sub 不過還是謝謝您的回答~ |
大概看一下, 這似乎是聊天室的 code , 不過有問題的那一行的 i 應該改成 index
大意是將 "client IP:文字" 附加在 Text3 的最上面 (你要問的那一行) 並將這些文字送給其它 client (下面的 code) |
小的不才,不過還沒聽過程式碼需要用中文「翻譯」的,連參考書也沒這樣做。
頂多就是「加上註解」罷了。了解它的作用,以自已懂的方式去註解,不就好了嗎? 我不寫 VB,我寫 Delphi,可是這段程式碼,我想我應該也看得懂,那就是: Winsock1_DataArrival 是由其他程序呼叫的子程序,藉由被傳入的 Index 參數,給 Winsock1.GetData 取得 Winsock1 的相關資訊並 assign 給 str 後,將 Winsock1.RemoteHostIP 及 str 累加到 Text3 元件的 Text 屬性。 接著再以30次周期的迴圈做判斷,假如 Winsock1(i).State = sckConnected (應意為連線狀態),就以 Winsock1(i).SendData 方法,傳出 str,再做 DoEvents (目的不明)。 註:由於本人不是很了解 VB 元件的方法,與變數的相對位置,我只能猜測此 procedure 的目的來說了。 不過最後,我還是覺得,程式碼比多餘的中文敘述,簡單明瞭多了... :D |
doevents就是強制vb必需完成以上的事才可以繼續
|
Doevents 跟你說的不太一樣哦~
Doevents 是會暫停一下下, 釋放控制權出來給作業系統 所以當你在跑迴圈時, 如果不用 Doevents , 這樣系統會 handle 在那邊, 都沒法回應你的操作, 一定要等回圈跑完, 如果加入 Doevents, 就可以讓作業系統處理其它的事件 |
所有的時間均為GMT +8。 現在的時間是06:11 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。