-
Sep 22nd, 2009, 05:53 AM
#1
Thread Starter
Lively Member
Need Some Help with multiple form DIMMING / LOADING
I AM MAKING A POOL GAME PROGRAM, ITS KIND A RE-WRITE OF BUTCH'S GAME CLIENT BUT WITH MULTISOCKET
EVERYTHING WAS GOING FINE UNTIL USER JOIN'S TABLE
AS TABLE SHOW'S UP FORM STOP'S RESPONDING TO SOME EVENTS !!
FEW PARTIAL CODES ARE
WHOLE TABLE CODE name as fTable in my project
Code:
Option Explicit
Private TableNumber As String
Private IndexNumber As Integer
Private isActivated As Boolean
Private mySeat As Integer
Private Sub cmbTableState_Click()
If cmbTableState.ListIndex = 0 Then
Call yGamesOwner.yGames(IndexNumber).TableState(TableNumber, [public])
ElseIf cmbTableState.ListIndex = 1 Then
Call yGamesOwner.yGames(IndexNumber).TableState(TableNumber, [Protected])
ElseIf cmbTableState.ListIndex = 2 Then
Call yGamesOwner.yGames(IndexNumber).TableState(TableNumber, [Private])
End If
End Sub
Private Sub cmdBoot_Click()
If lvTableUser.ListItems.Count <= 0 Then Exit Sub
If lvTableUser.SelectedItem.Selected = True Then
yGamesOwner.yGames(IndexNumber).BootFromTable lvTableUser.SelectedItem.Text, TableNumber
Else
MsgBox "Select User To Boot From Userlist"
End If
End Sub
Private Sub cmdInvite_Click()
Unload frmRoomUser
InviteFrom = IndexNumber
InvitationTable = TableNumber
frmRoomUser.Show
End Sub
Private Sub cmdResign_Click()
If mySeat > -1 Then
yGamesOwner.yGames(IndexNumber).Resign TableNumber, CStr(mySeat)
End If
End Sub
Private Sub cmdSeat_Click(Index As Integer)
Dim X As Integer
If Index > TotalSeat Then Exit Sub
Select Case cmdSeat(Index).Caption
Case "Sit"
yGamesOwner.yGames(IndexNumber).Sit TableNumber, CStr(Index)
mySeat = Index
For X = 0 To 3
If X <> Index Then
cmdSeat(X).Enabled = False
End If
Next
cmdStart.Enabled = True
cmdResign.Enabled = True
Case "Stand"
yGamesOwner.yGames(IndexNumber).StandUp TableNumber
mySeat = -1
For X = 0 To 3
If lblUsername(X).Caption = "" Then
If X + 1 <= TotalSeat Then
cmdSeat(X).Enabled = True
End If
End If
Next
cmdStart.Enabled = False
cmdResign.Enabled = False
End Select
End Sub
Private Sub cmdStart_Click()
If mySeat > -1 Then
yGamesOwner.yGames(IndexNumber).ClickStart TableNumber
End If
End Sub
Private Sub Form_Activate()
If isActivated = True Then Exit Sub
isActivated = True
IndexNumber = TableInfo(Me.Tag).yIndex
TableNumber = TableInfo(Me.Tag).tNumber
Call TableHostChanged
Call SetState
Call PopulateTableUsers(TableNumber)
mySeat = -1
End Sub
Private Sub Form_Load()
Call FixThemeSupport(Controls)
isActivated = False
End Sub
Private Sub PopulateTableUsers(mTable As String)
Dim X As Integer, y As Integer, tmpUser As String, Viewers As String
X = yGamesOwner.TableExist(mTable)
If X > 0 Then
For y = 1 To 4
tmpUser = yGamesOwner.lvRoom.ListItems(X).SubItems(y)
If tmpUser <> "" Then
Call AddUser(tmpUser)
Call UserSat(y - 1, tmpUser)
Else
If y <= TotalSeat Then
cmdSeat(y - 1).Enabled = True
End If
End If
Next
Viewers = yGamesOwner.lvRoom.ListItems(X).SubItems(5)
For y = 0 To UBound(Split(Viewers, ", ")) - 1
tmpUser = Split(Viewers, ", ")(y)
If tmpUser <> "" Then
Call AddUser(tmpUser)
End If
Next
End If
End Sub
Public Sub EnableHostControl(e As Boolean)
cmbTableState.Locked = Not e
cmdInvite.Enabled = e
cmdBoot.Enabled = e
End Sub
Private Sub Form_Unload(Cancel As Integer)
yGamesOwner.yGames(IndexNumber).LeaveTable TableNumber
Unload Me
End Sub
Private Sub lvTableUser_DblClick()
If lvTableUser.ListItems.Count = 0 Then Exit Sub
If lvTableUser.SelectedItem.Selected = True Then
yGamesOwner.yGames(IndexNumber).InfoUser LCase(lvTableUser.SelectedItem.Text)
End If
End Sub
Private Sub txtTableMsg_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
If txtTableMsg = "" Then Exit Sub
Call yGamesOwner.yGames(IndexNumber).SendTableMessage(txtTableMsg, TableNumber)
txtTableMsg.Text = ""
End If
End Sub
Public Sub TableHostChanged()
Me.Caption = "Joined As - " & getRealUser(yGamesOwner.yGames(IndexNumber).Username) & " Table - " & TableNumber & " Host - " & getRealUser(TableHosts(TableNumber))
If LCase(yGamesOwner.yGames(IndexNumber).Username) = LCase(TableHosts(TableNumber)) Then
Call EnableHostControl(True)
Call AddMessage(txtTableChat, vbBlue, "*** You Are Host Of This Table Now, This Gives You Power To **** Anyone Off The Table." & vbCrLf, True)
Else
Call EnableHostControl(False)
End If
End Sub
Public Sub SetState()
Dim X As Integer, mState As Integer
X = yGamesOwner.TableExist(TableNumber)
If X > 0 Then
mState = CInt(yGamesOwner.lvRoom.ListItems(X).SubItems(6))
cmbTableState.ListIndex = mState
End If
End Sub
Public Sub AddUser(theUser As String)
Dim X As Integer
X = userExists(theUser)
Debug.Print "Test Event Raised"
If X = 0 Then
lvTableUser.ListItems.Add , , getRealUser(theUser)
Call AddMessage(txtTableChat, vbBlue, "*** " & getRealUser(theUser) & " Joined The Table." & vbCrLf, True)
End If
End Sub
Public Sub RemoveUser(theUser As String)
Dim X As Integer
X = userExists(theUser)
If X > 0 Then
lvTableUser.ListItems.Remove X
Call AddMessage(txtTableChat, vbBlue, "*** " & getRealUser(theUser) & " Left The Table." & vbCrLf, True)
End If
End Sub
Public Sub UserSat(Seat As Integer, theUser As String)
cmdStart.Enabled = False
cmdResign.Enabled = False
If LCase(yGamesOwner.yGames(IndexNumber).Username) = LCase(theUser) Then
cmdSeat(Seat).Enabled = True
cmdSeat(Seat).Caption = "Stand"
lblUsername(Seat).Caption = getRealUser(theUser)
Else
cmdSeat(Seat).Enabled = False
cmdSeat(Seat).Caption = "Sit"
lblUsername(Seat).Caption = getRealUser(theUser)
End If
End Sub
Public Sub UserStood(Seat As Integer)
lblUsername(Seat).Caption = ""
If mySeat > 0 Then
cmdSeat(Seat).Enabled = True
Else
cmdSeat(Seat).Enabled = False
End If
cmdSeat(Seat).Caption = "Sit"
End Sub
Public Function userExists(theUser As String)
Dim lvItem As ListItem
Set lvItem = lvTableUser.FindItem(theUser, lvwText, , lvwWhole)
If Not lvItem Is Nothing Then
userExists = lvItem.Index
Else
userExists = 0
End If
End Function
the real problem starts here
Code:
Private Sub yGames_UserJoinedTable(Index As Integer, FixedUser As String, Table As String)
Dim X As Integer, y As Integer
If Index = 1 Then
If LobbySpam(3).Value = vbChecked Then
YGames(1).SendLobbyMessage Replace(Replace(lSpamTxt(3).Text, "%USER%", getRealUser(FixedUser), , , vbTextCompare), "%TABLENUM%", Table, , , vbTextCompare)
End If
End If
If Index = 1 Then
Call AddTableViewer(Table, getRealUser(FixedUser))
DoEvents
End If
If LCase(yGames(Index).Username) = LCase(FixedUser) Then
X = getFreeTable
TableInfo(X).tNumber = Table
TableInfo(X).yIndex = Index
TableInfo(X).fIndex = X
Set Tables(X) = New fTable
Tables(X).Tag = X
Tables(X).Show
End If
Y = getTable(Index, Table)
If Y > 0 Then
Tables(TableInfo(Y).fIndex).AddUser FixedUser
End If
End Sub
to my knowledge all variables are declared everything is fine except the form freeze (in sense that i dont show any dataarrival from the usercontrol !!
if any 1 has a better way to handle may form plz let me know,
my prog with load max 255 socket & each socket can hold max 11 tables !!
Regard's
Raj
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|