AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi LAN CHAT(Smileys, IP mitsenden...)
Thema durchsuchen
Ansicht
Themen-Optionen

LAN CHAT(Smileys, IP mitsenden...)

Ein Thema von la.reunion · begonnen am 30. Apr 2006 · letzter Beitrag vom 30. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2      
la.reunion

Registriert seit: 30. Apr 2006
152 Beiträge
 
#1

LAN CHAT(Smileys, IP mitsenden...)

  Alt 30. Apr 2006, 11:39
Hallo,
Ich bin gerade dabei einen Chat mithilfe von Sockets zu programmieren.
Soweit funktioniert er auch, bis jetzt besitzt er aber nur die grundfunktion von Text verschicken und den gesamten Chat zu protokollieren.
Mein erstes Problem ist, dass an den Server gesendet werden soll welche IPs alle eingeloggt sind und welchen Nick diese haben.
Mein zweites Problem ist, dass ich nicht weiß wie ich das anstellen kann, das jeder user sihc eine farbe aussuchen kann.
Und drittens weiß cih nciht wie ich smilies in dem chat realisieren kann...

Sorry für die vielen Fragen aber bei den drei Themen weiß ich nciht weiter.

Danke für eure Hilfe
Lg La.Reunion
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: LAN CHAT(Smileys, IP mitsenden...)

  Alt 30. Apr 2006, 11:45
Hallo!

... und herzlich Willkommen in der DP!

Vorneweg eine Frage:
Handelt es sich um einen zentralen Chat? (also 1 Server, x Clients) oder "nur" 1 on 1?

Zur Farbe:
Du weißt doch bestimmt, von wem die Nachricht kommt oder? Dann musst du nur wissen, in welcher Farbe derjenige schreibt - am einfachsten definierst du dir gewisse Schlüsselwörter (z.B. ChangeColor: UserX red) und wenn dein Chat eine solche Zeile empfängt, dann wird sie nicht ausgegeben, sondern entsprechend verarbeitet, sodass alle Messages von UserX jetzt rot werden.

Zum Smilie:
Es gibt RichEdits, die auch Bilder darstellen können (TXRichedit glaub ich). Such mal hier im Forum nach Richedit Bilder oder so.
Die Icons überträgst du auch als text (z.B. oder :anger und dann ersetzt du sie bei der Ausgabe...


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
la.reunion

Registriert seit: 30. Apr 2006
152 Beiträge
 
#3

Re: LAN CHAT(Smileys, IP mitsenden...)

  Alt 30. Apr 2006, 11:50
Danke für deine Antwort,
Es handelt sich um 1 Server und x Clients.
Wenn Ich anstelle eines Memo-Fensters ein Richedit nehm kommt gleich ein Fehler.

Könntest du mir das mit dem Definieren von den Farben genauer erklären ?
Danke

Lg La.Reunion

PS:. Ich habe es nach einem vorhandenen Tutorial gemacht, das man auch hier in DP runterladen kann.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#4

Re: LAN CHAT(Smileys, IP mitsenden...)

  Alt 30. Apr 2006, 11:52
Hi!

Du kannst das jetzt nicht so einfach austauschen. Wie gesagt, such mal hier nach der richtigen Komponente.
Wenn mich nicht alles täuscht, gibt es hier auch noch ein Tutorial von mir, dass den Aufbau eines Texteditors mit Hilfe eines RichEdits zeigt, das könnte dir dann weiterhelfen.

Beim zentralen Server solltest du dann sozusagen eine Liste haben, welcher User, welche Farbe hat und es dann dementsprechend an die Clients weiterleiten.
Wie sieht denn im Moment das weiterleiten an die Clients aus (Code)?


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
la.reunion

Registriert seit: 30. Apr 2006
152 Beiträge
 
#5

Re: LAN CHAT(Smileys, IP mitsenden...)

  Alt 30. Apr 2006, 11:55
Okay, werde mich einaml ein bisschen schlau mahcen über richedits....

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if (ClientSocket1.Active=true) and (Edit1.Text<>'') then
ClientSocket1.socket.SendText(Nickname+': '+Edit1.Text);
Edit1.Text := '';
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Form1.Show;
Memo1.Lines.Add(Socket.ReceiveText)
end;
Hier der Auszug aus meinem Client.

Lg La.Reunion
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#6

Re: LAN CHAT(Smileys, IP mitsenden...)

  Alt 30. Apr 2006, 12:04
Hi!

Kenne mich bezgl. der Sockets jetzt nicht so super aus - aber wie ermöglichst du so mehrere Clients und schaffst es, dass alle Clients alles mitbekommen?


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: LAN CHAT(Smileys, IP mitsenden...)

  Alt 30. Apr 2006, 13:07
Das Prinzip ist ja folgendes

Code:
Client
|  /\
|  |
\/ |
Server ----> Client
|
|
\/
Client
Der Server empfängt einen Text von einem Client und sendet diesen an alle Clients weiter.

Florian

PS: Auf www.lanchat2.de arbeiten drei Leute an einem LanChat. Unter Anderem ist auch ein Client von mir dabei. Das Projekt ist OpenSource. Guck dir einfach mal den Quelltext an, um zu sehen, wie wir das z.B. mit Smilies geregelt haben. Für Socket Probleme ist dies nichts, da der Chat über UDP läuft.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
la.reunion

Registriert seit: 30. Apr 2006
152 Beiträge
 
#8

Re: LAN CHAT(Smileys, IP mitsenden...)

  Alt 30. Apr 2006, 13:25
danke für eure Antworten werde mr mal den Quelltext anschauen.

Lg La.reunion
  Mit Zitat antworten Zitat
la.reunion

Registriert seit: 30. Apr 2006
152 Beiträge
 
#9

Re: LAN CHAT(Smileys, IP mitsenden...)

  Alt 30. Apr 2006, 14:01
echt cooler Chat nur wo ist da der code für die smileys den hab ich noch nicht gefunden.


Lg La.Reunion
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: LAN CHAT(Smileys, IP mitsenden...)

  Alt 30. Apr 2006, 15:14
In meinem Chat füge ich die Smilies so ein:

Delphi-Quellcode:
procedure TMainForm.BildEinfuegen(var Bilder: TImageList; const ImageIndex: integer);
var
  bitmap: TBitmap;
begin
  Bitmap := TBitmap.Create;
  try
    Bilder.GetBitmap(ImageIndex,Bitmap);
    REEmpfangen.InsertGraphic(Bitmap,false);
    with REEmpfangen.GetSelection do REEmpfangen.SetSelection(cpMin + 1, cpMin + 1, False);
  finally
    bitmap.Free;
  end;
end;

procedure TMainForm.SucheSmiley(const Smiley: string; ImageIndex: integer; Liste: TImageList);
var
  FoundAt: LongInt;
  StartPos, ToEnd: Integer;
begin
with REEmpfangen do
  begin
    if SelLength <> 0 then StartPos := SelStart + SelLength
    else StartPos := 0;
    ToEnd := Length(Text) - StartPos;
    FoundAt := FindText(Smiley, StartPos, ToEnd, []);
    if FoundAt <> -1 then
    begin
      SetFocus;
      SelStart := FoundAt;
      SelLength := Length(Smiley);
      BildEinfuegen(Liste, ImageIndex);
    end;
  end;
end;
Der Code ist nicht von mir, ich hab ihn nur etwas angepasst.

REEmpfangen ist dabei ein "JvRichEdit" aus der Jvcl

Der Smiley ist wird dabei als Text in der Nachricht versendet, also z.B. *lach* für

EDIT:
Zitat von la.reunion:
Mein zweites Problem ist, dass ich nicht weiß wie ich das anstellen kann, das jeder user sihc eine farbe aussuchen
Dafür gehen jbg´s Implode-Explode-Funktionen eigentlich ganz gut, da kannst du dir ein schönes "Nachrichtenprotokoll" zusammenbauen, wo du dann z. B. auch Schriftart, -größe und -farbe und sonst was mit einbauen kannst
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz