Page 1 sur 1
Gadget tchat
Publié : mer. 22/août/2012 17:52
par SPH
J'ai un zero pointé en gadget mais j'ai un projet où il va falloir que j'en utilise. J'ai donc une question :
existe t'il un moyen pour valider avec ENTREE un gadget qui imite un tchat ?
Hooo, je m'exprime mal mais j'espere que vous m'avez compris...
Re: Gadget tchat
Publié : mer. 22/août/2012 18:12
par lepiaf31
+ StringGadget()
+ AddKeyboardShortcut() pour récupérer l'appui sur la touche entrée
+ GetActiveGadget() pour vérifier si le stringGadget à bien le "focus"
Re: Gadget tchat
Publié : mer. 22/août/2012 18:25
par SPH
ok c'est noté.
Et je sais que j'etais confronté a un autre probleme : afficher les 10 derniers messages du tchat. Pour cela, il fallait aligner vers le bas le string. Est-ce possible ?
Re: Gadget tchat
Publié : jeu. 23/août/2012 11:04
par lepiaf31
SPH a écrit :
Et je sais que j'etais confronté a un autre probleme : afficher les 10 derniers messages du tchat. Pour cela, il fallait aligner vers le bas le string. Est-ce possible ?
Le plus simple ca reste un EditorGadget() avec l'option ReadOnly et tu le rafraichit complètement à chaque nouveau message ajouté.
Re: Gadget tchat
Publié : jeu. 23/août/2012 14:45
par Ar-S
Tout à fait.
Tu stockes tes tchat dans une Liste Chainée puis tu affiches la liste dans l'ordre que tu souhaites.
J'avais fait un petit tchat (via ftp) qui marchait bien. Je regarderai si je trouve le code.
-----edit------
Pas retrouvé mais voilà un truc du genre tchat. Sans liste, juste avec une variable.s.
Code : Tout sélectionner
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window_0
#EDITOR : #message : #go
EndEnumeration
If OpenWindow(#Window_0, 450, 300, 280, 150, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
EditorGadget(#EDITOR, 5, 10, 270, 70,#PB_Editor_ReadOnly)
SetGadgetText(#EDITOR,"Le fonctionnement d'un tchat ressemble à ça non ?")
SendMessage_(GadgetID(#EDITOR), #EM_SETTARGETDEVICE, #Null, 0) ; retour auto
StringGadget(#message,5,90,250,20,"Tape ton textre ici puis clic sur le bouton",#PB_String_BorderLess)
ButtonGadget(#go,5,120,50,20,"envoyer")
; Gadget Colors
SetGadgetColor(#EDITOR, #PB_Gadget_BackColor, $0)
SetGadgetColor(#EDITOR, #PB_Gadget_FrontColor, #green)
;{- Event loop
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #go
Message$=Space(5)+GetGadgetText(#message)
EditorMessage$=Space(5)+GetGadgetText(#EDITOR)
MessageTotal$=Chr(10)+Message$+Chr(10)+EditorMessage$
SetGadgetText(#EDITOR,MessageTotal$)
SetGadgetText(#message,"")
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Window_0
CloseWindow(#Window_0)
Break
EndSelect
EndSelect
ForEver
EndIf