[Delphi]Smilie Übersetzung in nem Memo?
Hey!
Für meinen Netzwerk Chat bräuchte ich folgendes:
Wäre es möglich wenn ein User in sein Nachrichtenfeld z.B. "Hi : D"
rein schreibt dass das dann bei den anderen so aussieht: "Hi
"
Die Nachrichten werden in nem Memofeld angezeigt
Und jetzt möchte ich wissen ob das geht und wenn ja wie.Oder ist das in nem Memofeld nicht möglich?
thx
Für meinen Netzwerk Chat bräuchte ich folgendes:
Wäre es möglich wenn ein User in sein Nachrichtenfeld z.B. "Hi : D"
rein schreibt dass das dann bei den anderen so aussieht: "Hi
"Die Nachrichten werden in nem Memofeld angezeigt
Und jetzt möchte ich wissen ob das geht und wenn ja wie.Oder ist das in nem Memofeld nicht möglich?
thx
If liberty means anything at all, it means the right to tell people what they do not want to hear. - Georg Orwell
Mit einem MemoFeld ist dies nicht möglich. Auch Rtf von Delphi taugt nichts.
Du müsstest es mit TWebBrowser machen, damit kannst du via HTML Smileys einfügen. Allerdings ist die Umsetzung etwas kompliziert, aber ich weiß, das es möglich ist, weil ich sowas schon mal irgendwo in Delphi gesehen habe und ich weiß noch, das es Mithilfe von TServerSocket:12345 und Navigate('http://localhost:12345'); realisiert wurde und auf dem ServerSocket der Chattext jeweils zum TWebBrowser geschickt worden ist.
Alternativ (wahrscheinlich einfacher): Eigene Renderengine basteln via TImage
Du müsstest es mit TWebBrowser machen, damit kannst du via HTML Smileys einfügen. Allerdings ist die Umsetzung etwas kompliziert, aber ich weiß, das es möglich ist, weil ich sowas schon mal irgendwo in Delphi gesehen habe und ich weiß noch, das es Mithilfe von TServerSocket:12345 und Navigate('http://localhost:12345'); realisiert wurde und auf dem ServerSocket der Chattext jeweils zum TWebBrowser geschickt worden ist.
Alternativ (wahrscheinlich einfacher): Eigene Renderengine basteln via TImage
Fighting for peace is like fucking for virginity
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Slude« (7. März 2005, 21:53)
Zitat
Du müsstest es mit TWebBrowser machen, damit kannst du via HTML Smileys einfügen. Allerdings ist die Umsetzung etwas kompliziert, aber ich weiß, das es möglich ist, weil ich sowas schon mal irgendwo in Delphi gesehen habe und ich weiß noch, das es Mithilfe von TServerSocket:12345 und Navigate('http://localhost:12345'); realisiert wurde und auf dem ServerSocket der Chattext jeweils zum TWebBrowser geschickt worden ist.
klingt schonmal nich schlecht.aber ich habe schon einen serversocket am laufen und zwei kann man ja nicht paralell laufen lassen.oder würde das über einen geregelt?
Zitat
Alternativ (wahrscheinlich einfacher): Eigene Renderengine basteln via TImage
klingt besser!
)nur weiß ich nich was ne renderengine is.

thx
If liberty means anything at all, it means the right to tell people what they do not want to hear. - Georg Orwell
1) Doch, du kannst zwei Serversocket paralell laufen lassen.
Den ersten Benutzt du so wie du es immer machst, der zweite Serversocket ist NUR dafür da, dem TWebBrowser HTML-Code zu schicken, nur müssen die beide auf verschiedenen Ports laufen. Den TServerSocket (ich nenn es mal ssweb) für den WebBrowser läuft zB auf Port 12345.
Dann schreibst du im WebBrowser1.Navigate('http://localhost:12345'); und ab OnConnect spielt nun der "ssweb" der HTTP-Server der im Stream dann laufend und unnterbrocfhen dem TWebBrowser den Text gibt.
Statt Memo1.Lines.Add(...); heißt es nun ssweb.Socket.SendText(...);
Der Rest (dein anderer Serversocket und die Chatverwaltung) bleibt gleich.
Allerdings solltest du dich mit dem HTTP-Protokoll auskennen, ggf. die RFC nachlesen und rumprobieren.
2) Zur Engine: Du zeichnest den Text einfach selber. Image1.Canvas.TextOut() für Text und Image1.Canvas.Draw() für Smileys. Allerdings müsst du alles händisch machen wie das Scrollen, Text positionieren etc.. Aber dürfte nicht viel schwerer sein als die Socket-Methode.
Den ersten Benutzt du so wie du es immer machst, der zweite Serversocket ist NUR dafür da, dem TWebBrowser HTML-Code zu schicken, nur müssen die beide auf verschiedenen Ports laufen. Den TServerSocket (ich nenn es mal ssweb) für den WebBrowser läuft zB auf Port 12345.
Dann schreibst du im WebBrowser1.Navigate('http://localhost:12345'); und ab OnConnect spielt nun der "ssweb" der HTTP-Server der im Stream dann laufend und unnterbrocfhen dem TWebBrowser den Text gibt.
Statt Memo1.Lines.Add(...); heißt es nun ssweb.Socket.SendText(...);
Der Rest (dein anderer Serversocket und die Chatverwaltung) bleibt gleich.
Allerdings solltest du dich mit dem HTTP-Protokoll auskennen, ggf. die RFC nachlesen und rumprobieren.
2) Zur Engine: Du zeichnest den Text einfach selber. Image1.Canvas.TextOut() für Text und Image1.Canvas.Draw() für Smileys. Allerdings müsst du alles händisch machen wie das Scrollen, Text positionieren etc.. Aber dürfte nicht viel schwerer sein als die Socket-Methode.
Fighting for peace is like fucking for virginity


