20200108
This commit is contained in:
211
VERAG_PROG_ALLGEMEIN/Messenger/frmMessenger.vb
Normal file
211
VERAG_PROG_ALLGEMEIN/Messenger/frmMessenger.vb
Normal file
@@ -0,0 +1,211 @@
|
||||
Imports System.Drawing
|
||||
Imports System.Threading
|
||||
Imports System.Windows.Forms
|
||||
|
||||
Public Class frmMessenger
|
||||
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
Dim CHAT As VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_Chat = Nothing
|
||||
Dim MSG_LISTENDER As New cMessangerListender
|
||||
|
||||
Public Sub New()
|
||||
|
||||
' Dieser Aufruf ist für den Designer erforderlich.
|
||||
InitializeComponent()
|
||||
|
||||
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub MyDatagridview1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvChats.CellContentClick
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
||||
Dim f As New frmMessenger_NeuerChat
|
||||
f.ShowDialog(Me)
|
||||
End Sub
|
||||
|
||||
Private Sub frmMessenger_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
MSG_LISTENDER.START()
|
||||
|
||||
intiDGVChats()
|
||||
TimerNEW_MESSAGE.Enabled = True
|
||||
End Sub
|
||||
|
||||
Sub intiDGVChats()
|
||||
With dgvChats
|
||||
|
||||
.DataSource = SQL.loadDgvBySql("SELECT [chat_id],chat_name FROM [tblMessenger_Chat] WHERE [chat_aktiv]=1 AND (SELECT COUNT(*) FROM tblMessenger_ChatMembers WHERE chatMB_chatId=chat_id AND chatMB_maId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ")>0", "ADMIN")
|
||||
If .Columns.Count = 0 Then Exit Sub
|
||||
|
||||
.Columns("chat_id").Visible = False
|
||||
.Columns("chat_name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
||||
|
||||
End With
|
||||
End Sub
|
||||
Private Sub dgvChats_SelectionChanged(sender As Object, e As EventArgs) Handles dgvChats.SelectionChanged
|
||||
MyFlowLayoutPanel1.Controls.Clear()
|
||||
If dgvChats.SelectedRows.Count > 0 Then
|
||||
CHAT = New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_Chat(dgvChats.SelectedRows(0).Cells("chat_id").Value)
|
||||
RELOAD_CHAT()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub RELOAD_CHAT()
|
||||
MyFlowLayoutPanel1.Controls.Clear()
|
||||
If CHAT IsNot Nothing Then
|
||||
' CHAT = New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_Chat(dgvChats.SelectedRows(0).Cells("chat_id").Value)
|
||||
For Each MSG In CHAT.CHAT_MESSAGES
|
||||
Dim CHAT_ITEM As New usrCntlMessenger_ChatElement(MSG)
|
||||
checkUsrId(MSG, CHAT_ITEM)
|
||||
|
||||
CHAT_ITEM.txtChatmessage.Text = MSG.chatMg_text
|
||||
'CHAT_ITEM.lblName.Text = MSG.chatMg_maId
|
||||
MyFlowLayoutPanel1.Controls.Add(CHAT_ITEM)
|
||||
Next
|
||||
' MyFlowLayoutPanel1.VerticalScroll.()
|
||||
'MyFlowLayoutPanel1.AutoScrollPosition = New Point(MyFlowLayoutPanel1.Width, MyFlowLayoutPanel1.Height)
|
||||
' If MyFlowLayoutPanel1.Controls.Count > 0 Then MyFlowLayoutPanel1.ScrollControlIntoView(MyFlowLayoutPanel1.Controls(MyFlowLayoutPanel1.Controls.Count - 1))
|
||||
MyFlowLayoutPanel1.VerticalScroll.Value = MyFlowLayoutPanel1.VerticalScroll.Maximum
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub REFRESH_CHAT()
|
||||
If CHAT IsNot Nothing Then
|
||||
CHAT.LOAD_MESSAGES()
|
||||
|
||||
' CHAT = New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_Chat(dgvChats.SelectedRows(0).Cells("chat_id").Value)
|
||||
For Each MSG In CHAT.CHAT_MESSAGES
|
||||
Dim found As Boolean = False
|
||||
For Each I As usrCntlMessenger_ChatElement In MyFlowLayoutPanel1.Controls
|
||||
If I.CHAT_MSG.chatMg_id = MSG.chatMg_id Then
|
||||
found = True
|
||||
End If
|
||||
Next
|
||||
If Not found Then
|
||||
|
||||
Dim CHAT_ITEM As New usrCntlMessenger_ChatElement(MSG)
|
||||
checkUsrId(MSG, CHAT_ITEM)
|
||||
|
||||
CHAT_ITEM.txtChatmessage.Text = MSG.chatMg_text
|
||||
'CHAT_ITEM.lblName.Text = MSG.chatMg_maId
|
||||
MyFlowLayoutPanel1.Controls.Add(CHAT_ITEM)
|
||||
End If
|
||||
Next
|
||||
' MyFlowLayoutPanel1.VerticalScroll.()
|
||||
'MyFlowLayoutPanel1.AutoScrollPosition = New Point(MyFlowLayoutPanel1.Width, MyFlowLayoutPanel1.Height)
|
||||
' If MyFlowLayoutPanel1.Controls.Count > 0 Then MyFlowLayoutPanel1.ScrollControlIntoView(MyFlowLayoutPanel1.Controls(MyFlowLayoutPanel1.Controls.Count - 1))
|
||||
MyFlowLayoutPanel1.VerticalScroll.Value = MyFlowLayoutPanel1.VerticalScroll.Maximum
|
||||
End If
|
||||
End Sub
|
||||
|
||||
'Sub ORDER_CHAT_MSG()
|
||||
' If Not CHECK_CHATMSG_ORDER() Then
|
||||
|
||||
' For Each I As usrCntlMessenger_ChatElement In MyFlowLayoutPanel1.Controls
|
||||
|
||||
' Next
|
||||
' End If
|
||||
|
||||
'End Sub
|
||||
'Function CHECK_CHATMSG_ORDER() As Boolean
|
||||
' Dim oldItem = Nothing
|
||||
' For Each I As usrCntlMessenger_ChatElement In MyFlowLayoutPanel1.Controls
|
||||
' If oldItem IsNot Nothing And I.CHAT_MSG.chatMg_datetime < oldItem.CHAT_MSG.chatMg_datetime Then
|
||||
' Return False
|
||||
' End If
|
||||
' oldItem = I
|
||||
' Next
|
||||
' Return True
|
||||
'End Function
|
||||
Sub checkUsrId(MSG As VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_ChatMessages, CHAT_ITEM As usrCntlMessenger_ChatElement)
|
||||
If MSG.chatMg_maId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID Then
|
||||
CHAT_ITEM.Margin = New Padding(MyFlowLayoutPanel1.Width - CHAT_ITEM.Width - 30, 0, 0, 0)
|
||||
'CHAT_ITEM.Left = (MyFlowLayoutPanel1.Width - CHAT_ITEM.Width - 30)
|
||||
'CHAT_ITEM.Anchor = AnchorStyles.None
|
||||
'CHAT_ITEM.Dock = DockStyle.Right
|
||||
' CHAT_ITEM.Dock = DockStyle.Right
|
||||
CHAT_ITEM.setBgCOLOR(Color.FromArgb(192, 255, 192))
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
|
||||
If rtbChatMessage.Text.Trim <> "" Then
|
||||
If CHAT IsNot Nothing Then
|
||||
|
||||
Dim MSG As New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_ChatMessages(CHAT.chat_id, VERAG_PROG_ALLGEMEIN.cAllgemein.USRID)
|
||||
MSG.chatMg_text = rtbChatMessage.Text.Trim
|
||||
If MSG.SAVE Then
|
||||
SEND_TOKEN_NEW_MESSAGE()
|
||||
' CHAT.CHAT_MESSAGES.Add(MSG)
|
||||
REFRESH_CHAT()
|
||||
rtbChatMessage.Text = ""
|
||||
rtbChatMessage.Focus()
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Sub SEND_TOKEN_NEW_MESSAGE()
|
||||
For Each MB In CHAT.CHAT_MEMBERS
|
||||
If MB.chatMb_maId <> VERAG_PROG_ALLGEMEIN.cAllgemein.USRID Then
|
||||
|
||||
Dim IP = cSession.GET_IP_FROM_MAID(MB.chatMb_maId)
|
||||
|
||||
If IP <> "" Then
|
||||
Dim SC As New cServerClient ' SC.begin("192.168.0.50", "NEW_MESSAGE") '192.168.0.95 = atlas suben
|
||||
SC.begin(IP, "NEW_MESSAGE")
|
||||
MsgBox(IP)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
'SC.waitTillFinished()
|
||||
'Thread.Sleep(1000)
|
||||
|
||||
'If SC.status = "TaskSuccess" Then
|
||||
|
||||
'Else
|
||||
|
||||
'End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub rtbChatMessage_KeyDown(sender As Object, e As KeyEventArgs) Handles rtbChatMessage.KeyDown
|
||||
If e.Modifiers = Keys.Control And e.KeyCode = Keys.Return Then
|
||||
btn.PerformClick()
|
||||
e.Handled = True
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
||||
If rtbChatMessage.Text.Trim <> "" Then
|
||||
If CHAT IsNot Nothing Then
|
||||
|
||||
Dim MSG As New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_ChatMessages(CHAT.chat_id, VERAG_PROG_ALLGEMEIN.cAllgemein.USRID)
|
||||
MSG.chatMg_text = rtbChatMessage.Text.Trim
|
||||
MSG.chatMg_maId = 99
|
||||
If MSG.SAVE Then
|
||||
' CHAT.CHAT_MESSAGES.Add(MSG)
|
||||
CHAT.LOAD_MESSAGES()
|
||||
REFRESH_CHAT()
|
||||
rtbChatMessage.Text = ""
|
||||
rtbChatMessage.Focus()
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub TimerNEW_MESSAGE_Tick(sender As Object, e As EventArgs) Handles TimerNEW_MESSAGE.Tick
|
||||
If CHAT IsNot Nothing And VERAG_PROG_ALLGEMEIN.cMessenger.NEW_MESSGE = True Then
|
||||
VERAG_PROG_ALLGEMEIN.cMessenger.NEW_MESSGE = False
|
||||
MsgBox("asd")
|
||||
REFRESH_CHAT()
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user