Code : Tout sélectionner
;- Init Variables
Enumeration
#clientinfo
#client
#info
#msg
#send
#users
#enter
#txt1
#txt2
#txt3
#clientname
#ip
#port
#ok
#kill
#textepseudo
#ComboBox_0
#pseudo
#options
#options1
#Frame_2
#smile1
#smile2
#smile3
#smile4
#smile5
#smile6
#smile7
#smile8
#Frame_0
#couleur_texte_r
#couleur_texte_g
#couleur_texte_b
#Frame_1
#couleur_texte_rf
#couleur_texte_gf
#couleur_texte_bf
EndEnumeration
text.s
cr.s
clientname.s
name.s
IP.s
check .s
check = Chr(159)
maxbuffer.l = 1000
*Buffer = AllocateMemory(maxbuffer)
adresseip$ = InputRequester("option connexion", "veuillez entree l'adresse ip du serveur", adresseip$)
pseudo$ = InputRequester("pseudo", "choisissez un pseudo", pseudo$)
space$ = Space(2)
;- Init Network
InitNetwork()
ConnectionID = OpenNetworkConnection(adresseip$, 6832)
If ConnectionID = 0
MessageRequester("erreur", "pbMI n'a pas pu se connecter au serveur", #MB_ICONERROR)
End
EndIf
If OpenWindow(#client, 0, 0, 800, 650, "pbMI", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
If CreateGadgetList(WindowID(#client))
ListIconGadget(#info, 10, 10, 600, 515, "", 596)
EditorGadget(#pseudo, 620, 10, 172, 515)
DisableGadget(#pseudo, 1)
StringGadget(#msg, 10, 560, 665, 40, "")
TextGadget(#textepseudo, 11, 603, 774, 15, "connecter en tant que : " + pseudo$)
ButtonGadget(#send, 690, 565, 100, 30, "envoyer")
ButtonGadget(#options, 350, 620, 100, 20, "options")
ButtonGadget(#options1, 350, 750, 100, 20, "^^ options ^^")
EndIf
EndIf
Frame3DGadget(#Frame_0, 10, 650, 120, 100, "couleur du texte")
TrackBarGadget(#couleur_texte_r, 20, 670, 100, 20, 0, 255, 0)
TrackBarGadget(#couleur_texte_g, 20, 690, 100, 20, 0, 255, 0)
TrackBarGadget(#couleur_texte_b, 20, 710, 100, 20, 0, 255, 0)
Frame3DGadget(#Frame_1, 140, 650, 120, 100, "couleur du font")
TrackBarGadget(#couleur_texte_rf, 150, 670, 100, 20, 0, 255, 0)
SetGadgetState(#couleur_texte_rf, 255)
TrackBarGadget(#couleur_texte_gf, 150, 690, 100, 20, 0, 255, 0)
SetGadgetState(#couleur_texte_gf, 255)
TrackBarGadget(#couleur_texte_bf, 150, 710, 100, 20, 0, 255, 0)
SetGadgetState(#couleur_texte_bf, 255)
AddKeyboardShortcut(#client, #PB_Shortcut_Return, #enter)
SetActiveGadget(#msg)
Repeat
CEvent.l = NetworkClientEvent(ConnectionID)
EventID = WindowEvent()
If CEvent Or EventID
If EventID = #PB_Event_CloseWindow
quit = 1
EndIf
If EventID = #PB_Event_Menu
Select EventMenu()
Case #enter
sendmessage = 1
EndSelect
EndIf
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #send
sendmessage = 1
Case #couleur_texte_r
Resultat = GetGadgetState(#couleur_texte_r)
SetGadgetColor(#info, #PB_Gadget_FrontColor, RGB(Resultat, Resultat1, Resultat2))
Case #couleur_texte_g
Resultat1 = GetGadgetState(#couleur_texte_g)
SetGadgetColor(#info, #PB_Gadget_FrontColor, RGB(Resultat, Resultat1, Resultat2))
Case #couleur_texte_b
Resultat2 = GetGadgetState(#couleur_texte_b)
SetGadgetColor(#info, #PB_Gadget_FrontColor, RGB(Resultat, Resultat1, Resultat2))
Case #couleur_texte_rf
Resultat = GetGadgetState(#couleur_texte_rf)
SetGadgetColor(#info, #PB_Gadget_BackColor, RGB(Resultat, Resultat1, Resultat2))
Case #couleur_texte_gf
Resultat1 = GetGadgetState(#couleur_texte_gf)
SetGadgetColor(#info, #PB_Gadget_BackColor, RGB(Resultat, Resultat1, Resultat2))
Case #couleur_texte_bf
Resultat2 = GetGadgetState(#couleur_texte_bf)
SetGadgetColor(#info, #PB_Gadget_BackColor, RGB(Resultat, Resultat1, Resultat2))
Case #options
ResizeWindow(#client, WindowX(#client), WindowY(#client), 800, 780)
ButtonGadget(#options, 0, 0, 0, 0, "options")
Case #options1
ResizeWindow(#client, WindowX(#client), WindowY(#client), 800, 650)
ButtonGadget(#options, 350, 620, 100, 20, "options")
EndSelect
EndIf
Select CEvent
Case 2
length = ReceiveNetworkData(ConnectionID, *Buffer, maxbuffer)
text = PeekS(*Buffer, length)
pos = FindString(text, ":", 1)
AddGadgetItem(#info, -1, text)
SendMessage_(GadgetID(#info), #EM_LINESCROLL, 0, 2)
FlashWindow_(hWnd, 1)
Case 3
ReceiveNetworkFile(ConnectionID, "users." + Str(port))
ClearGadgetItemList(#users)
If ReadFile(0, "users." + Str(port))
While Eof(0) = 0
name = ReadString(0)
AddGadgetItem(#users, -1, pseudo$)
Wend
CloseFile(0)
EndIf
EndSelect
If sendmessage = 1
sendmessage = 0
oldtime = ElapsedMilliseconds()
text$ = Chr(139) + space$ + pseudo$ + space$ + "dit" + space$ + Chr(155) + space$ + texte$ + GetGadgetText(#msg)
PokeS(*Buffer, text$, Len(text$))
SendNetworkData(ConnectionID, *Buffer, Len(text$))
SetGadgetText(#msg, "")
SetActiveGadget(#msg)
EndIf
Else
Delay(10)
EndIf
Until quit
CloseNetworkConnection(ConnectionID)
End