chat

Anfängerfragen zum Programmieren mit PureBasic.
Gast

Beitrag von Gast »

das was ich irgendwie nicht verstehe ist, so wie ich das versucht habe, da schickt der die werte an alle clienten, aber die werden dann da nicht in farbe sondern in ein test umgesetzt.
Gast

Beitrag von Gast »

naja vielleicht hilft es ja wenn ich noch mal den code zeige ???

Code: Alles auswählen

OpenWindow(0,0,0,500,390, "XIXIX Chat V 1.1 "+"©"+" 2007 by Maikel Rehl",#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)
AddKeyboardShortcut(0, #PB_Shortcut_Return, 3)
InitNetwork()
CreateGadgetList(WindowID(0))
EditorGadget(1,5,5,390,300,#PB_Editor_ReadOnly)
StringGadget(2,5,310,390,60,"")
ButtonGadget(3,400,310,95,25,"Senden")
ButtonGadget(6,400,340,95,25,"Farbe")
TextGadget(5,5,370,490,15,"Hallo ")

port=6054

Name.s = InputRequester("XIXIX Chat","Bitte geben sie Ihren Namen an:","")
farbe = ColorRequester()
SetGadgetColor(2,#PB_Gadget_FrontColor,farbe)

If CreateNetworkServer(#PB_Any, port, #PB_Network_UDP)
  SetGadgetText(5,"Server erfolgreich erstellt")
  SendUDPBroadcast(port,Name + ": ist der Sitzung beigetreten !!!")
EndIf

e = 0
f = 0

Repeat
  
  farbe = GetGadgetColor(2,#PB_Gadget_FrontColor)
  R$ = Str(Red(farbe))   
  G$ = Str(Green(farbe))
  B$ = Str(Blue(farbe))
  
Text.s = GetGadgetText(2)
  EventID = WaitWindowEvent()
 
  sevent = NetworkServerEvent()
  clientid = EventClient()
  
  If sevent = 2
    Text = Space(5000)
    ReceiveNetworkData(clientid, @Text, 5000)
    Editor_Select(e,1,1,e-1,-1)
    Editor_Color(1, RGB(Val(R$),Val(G$),Val(B$))) 
    AddGadgetItem(1,e-1,Text)
  EndIf 
  
  If EventID = #PB_Event_Menu
    Select EventMenu()
      Case 3
        If SendUDPBroadcast(port,Name + ": " + Text) = 0
          SetGadgetText(2,"")
          SetGadgetText(5,"Nachricht wurde erfolgreich gesendet")
        Else
          SetGadgetText(5,"Nachricht wurde nicht erfolgreich gesendet")
        EndIf
        SendUDPBroadcast(port,R$+","+G$+","+G$)
    EndSelect
  EndIf 

  If EventID = #PB_Event_Gadget
    Select EventGadget()
        Case 3
          If SendUDPBroadcast(port,Name + ": " +Text) = 0
            SetGadgetText(2,"")
            SetGadgetText(5,"Nachricht wurde erfolgreich gesendet")
          Else
            SetGadgetText(5,"Nachricht wurde nicht erfolgreich gesendet")
          EndIf
          SendUDPBroadcast(port,R$+","+G$+","+G$)
        Case 6
          farbe = ColorRequester()
          SetGadgetColor(2,#PB_Gadget_FrontColor,farbe)
      EndSelect
    EndIf

  Until EventID = #PB_Event_CloseWindow
  SendUDPBroadcast(port,Name + ": hat die Sitzung verlassen !!!")
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

Maikel hat geschrieben:das was ich irgendwie nicht verstehe ist, so wie ich das versucht habe, da schickt der die werte an alle clienten, aber die werden dann da nicht in farbe sondern in ein test umgesetzt.
????
meinst du in einen text ?
du musst einfach den farbwert rumschicken.
nur diese eine long variable
und mit nem keyword damit der client auch weiß, das es ein farbwert udn keine message ist
der client muss dann einfach nur den farbwert auslesen udn das richtige gadget damit einfärben
Gast

Beitrag von Gast »

ja genau text ^^ sorry.

wert.l = R$+","+G$+","+G$ so?
Benutzeravatar
Deluxe0321
Beiträge: 336
Registriert: 19.05.2006 00:31
Kontaktdaten:

Beitrag von Deluxe0321 »

wert.l = R$+","+G$+","+G$ so?
wird nicht gehen, weil ein String kein Long ist ^^

Hier mal ein kleines Bsp aus der PB-Hilfe:

Code: Alles auswählen

  Farbe.l = ColorRequester()
  If Farbe > -1
    a$ = "Sie haben folgende Farbwerte ausgewählt:" + Chr(10)  ; Chr(10) wird nur
    a$ + "24 Bit Wert: " + Str(Farbe)              + Chr(10)  ; für den Zeilen-
    a$ + "Rot-Wert:    " + Str(Red(Farbe))          + Chr(10)  ; umbruch benötigt
    a$ + "Grün-Wert:  " + Str(Green(Farbe))         + Chr(10)
    a$ + "Blau-Wert:   " + Str(Blue(Farbe))
  Else  
    a$ = "Der Requester wurde abgebrochen."
  EndIf
  MessageRequester("Information", a$, 0)
  End
Wie du sehen kannst ist der Farbwert erstmal vom Type Long, er wird in durch Str() in den Type String umgewandelt.

Du musst also nur den Wert Farbe selbst versenden, und nichts weiter. Natürlich kannst du es auch als String versenden, das geht wie oben schon geschrieben mit Str(Farbe).[/b]
Gast

Beitrag von Gast »

ja danke aba das wusste ich schon.

hab das problem aber gelöst bekommen, danke an alle die hier geschrieben haben. :allright: :allright: :allright:
Antworten