Thema: Delphi Fragen zu Chat.

Einzelnen Beitrag anzeigen

NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Fragen zu Chat.

  Alt 16. Feb 2012, 22:23
Du schickst den Nicknamen genauso wie das Passwort und ließt es dann so auch aus.
Das hinzufügen machst du dan so:

//Server
Delphi-Quellcode:
If Nachricht[1] = #101 then
begin
Delete(Nachricht,1,1);
//Nun hast du in der Variable Nachricht den eingebeben Nicknamen beim Server.
NicknamenList.Items.Add(Nachricht);
Adressen.Items.Add(Socket.RemoteAddress);
NicknamenList und Adressen sind ListBoxen, die du auf das Form setzt und die Eigenschaft Visible auf False setzt, so siehst du sie nicht. Du kannst sie auch sichtbar lassen, um zu sehen, ob er die richtige Adresse nihmt.

Das Lesen der Nicknamen,also der User die angemeldet sind, machst du über nen anderes "Zeichen", das du an den Server sendest und dann Sendest du mit einer For-Schleife alle Nicknamen, die angemeldet. (Der Client Empfängt dann alle Nicknamen und speichert die sich auch in einer ListBox).

Falls du dan eine PN an den Nicknamen senden willst, musst du wieder ein anderes "Zeichen" und den Nicknamen, danach ein Zeichen, zum Trennen des Nicknamen und der Nachricht.

In so einer Form:
NachrichtAnServer := #107 + Nickname + ';' + Text; Zum Trennen kannst du ja mal selber schauen, es gibt zum Trennen von Texten 3 Funktionen,
1. Pos (Liefert die Position eines Zeichens)
2. Copy (Liefert einen String/AnsiString, von Position aus mit einer bestimmten Länge)
3. Length(Liefert die Länge eines Strings/AnsiStrings)

Kleine Hausaufgabe (du sollst dich ja auch mal ein bischen damit beschäftigen, bzw. Delphi Hilfe stöbern.)
Wie trenne ich Nicknamen und Text beim Server, die ich vom Client erhalten habe.

Gruß
NickelM

P.S.: Versuch mal ob du das hinbekommst. Weitere Fragen kannst du ja per PN stellen, da dieser Thread sonst ewig lang wird.
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.

Geändert von NickelM (16. Feb 2012 um 22:50 Uhr)
  Mit Zitat antworten Zitat