|
Постоянный
Регистрация: 25.08.2007
Сообщений: 365
Провел на форуме: 1289173
Репутация:
39
|
|
'Ну вот...
Private Sub Command1_Click()
If Trim$(Me.txtName.Text) = "" Then MsgBox "Введите свое имя!", vbCritical: Exit Sub
'закроем на всякий случай, если соединение уже открыто
ws.Close
'соединяемся с сервером по адресу, введенному юзером, по порту 1000
'предварительно убрав лишние пробелы
ws.Connect Trim$(Me.Text1), 1000
'делаем так, чтобы юзер не смог второй раз нажать кнопку соединения
'потому что при этом выскочит ошибка
Me.Command1.Enabled = False
End Sub
Private Sub Command2_Click()
'завершить соединение, сообщить об этом, разблокировать кнопку
ws.Close
Me.stat.Caption = "OFF-line"
Me.Command1.Enabled = True
Me.Command2.Enabled = False
Me.txtName.Locked = False
Me.txtName.Enabled = True
End Sub
Private Sub Command3_Click()
Unload Form1
End Sub
Private Sub Command4_Click()
Form2.Show
End Sub
Private Sub Form_Load()
'скачать правду
stat.Caption = "On-Line"
End Sub
Private Sub Frame3_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
'если нажат энтер и Вы соединены, то отправить данные и сообщить об этом
If KeyAscii = 13 And ws.State = sckConnected Then ws.SendData txtName & ": " & Text2: Me.stat.Caption = "Отправлены данные"
'... а если не соединены, то подсказать совет...
If KeyAscii = 13 And ws.State <> sckConnected Then Me.stat.Caption = "Сначала соединитесь с сервером"
End Sub
Private Sub Text3_Change()
'автоскрол текстбокса и сообщение о прибытии данных
Me.Text3.SelStart = Len(Me.Text3)
Me.stat.Caption = "Получены данные"
End Sub
Private Sub ws_Close()
'сообщить о завершенном соединении, разблокировать кнопку
stat.Caption = "NO connect"
Me.Command1.Enabled = True
Me.Command2.Enabled = False
Me.txtName.Locked = False
Me.txtName.Enabled = True
End Sub
Private Sub ws_Connect()
'в статусе все что надо...
Me.stat.Caption = "Connect"
Me.Command2.Enabled = True
Me.txtName.Locked = True
Me.txtName.Enabled = False
End Sub
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
'получить данные и переложить их в текстбокс
ws.GetData Data
'но сначала проверить, явл. ли это сообщение приглашением к регистрации
If InStr(1, Data, "/reg") Then ws.SendData "NICK " & Trim$(txtName): Exit Sub
'а теперь получить список всех подключенных клиентов
Me.Text3 = Me.Text3 + vbCrLf + Data
End Sub
Private Sub ws_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
'при ошибке сообщить о ней, закрыть соединение, разблокировать кнопку
Me.stat.Caption = "Сервер не запущен #" & Number
ws.Close
Me.Command1.Enabled = True
End Sub
|