Suche nach Chat Komponente [gelöst]

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Suche nach Chat Komponente [gelöst]

Beitrag von corpsman »

Hallo Zusammen,
Ich denke ich hab hier mal wieder eine Stelle wo ich entweder noch nicht die Richtige Komponente gefunden habe oder es leider noch keine Richtige gibt :(

Doch zuerst was möchte ich machen...

Aktuell bastle ich an einem kleinen Chat Programm mit dem ich auf LAN-Parties, schnell und einfach kommunizieren (und zur Not auch mal ne Datei Tauschen kann).
Meine Anforderungen sind dem entsprechend simpel.
Mein Program steht ansich auch schon siehe folgenden Screenshoot:
preview.png
preview.png (22.66 KiB) 4664 mal betrachtet
Mein Problem ist nun die Darstellung der Chat Nachrichten, meine Anforderungen hierzu sind:
Links, und Rechtsbündig Text in Unterschiedlichen Farben aus geben und es sollte mindestens auf Windows und Linux laufen, und natürlich sollte ich via Quellcode ganz nach unten scrollen können.
-> ein TMemo fällt damit leider weg
Also dachte ich mir ich erzeuge die Chats einfach als HTML und lass diesen Rendern
-> TIpHtmlPanel kann zwar alles darstellen, ignoriert aber die Schriftfarbe leider komplett (oder mein HTML wird nicht unterstützt)
-> THtmlViewer ist dass was ich gerade verwende -> Auf Linux Mint Mate hängt sich die Aktuelle Darstellung aber manchmal auf, wenn der Chat text aus einem zusammen hängenden Text ohne Leerzeichen besteht, der zudem noch sehr "breit" ist :/

-> TRichMemo bekomme ich unter Linux nicht mehr zum laufen, fällt also leider auch weg :(

So und hier meine Frage: Kennt einer von euch noch eine Komponente die meine Anforderungen erfüllen kann? Ich muss mich da auch nicht auf HTML festlegen, mir viel nur nichts besseres ein ..

Übrigens die HTML des Screenshoots sieht bei mir so aus:

Code: Alles auswählen

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        .left-aligned {
            text-align: left;
            color: #000000;
        }
        .right-aligned {
            text-align: right;
            color: #000000;
        }
        .timestamp {
            color: #808080;
        }
    </style>
</head>
<body style="background-color: #FFFFFF;">
<p class="right-aligned"><span class="timestamp">06.12.2023 06:17:45</span><br>Hallo Alice, this is Bob</p>
<p class="left-aligned" ><span class="timestamp">06.12.2023 06:17:54</span><br>Hello Bob, this is Alice</p>
</body>
</html>

Zuletzt geändert von corpsman am Fr 8. Dez 2023, 06:05, insgesamt 1-mal geändert.
--
Just try it

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Suche nach Chat Komponente

Beitrag von corpsman »

Also hab nun mal ein wenig mehr gegoogelt und ausprobiert, wenn man das HTML anpasst auf das unten stehende, dann kann TIpHtmlPanel das ganze auch korrekt rendern:

Code: Alles auswählen

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style type="text/css">
        .left-aligned {
            text-align: left;
            color: #000000;
        }
        .right-aligned {
            text-align: right;
            color: #000000;
        }
    </style>
</head>
<body style="background-color: #FFFFFF;">
<p class="right-aligned"> <font color="#808080"> 06.12.2023 06:17:45 </font> <br> Hallo Alice, this is Bob </p>
<p class="left-aligned" > <font color="#808080"> 06.12.2023 06:17:54 </font> <br> Hello Bob, this is Alice </p>
</body>
</html>
Fun Feature, wenn man das Leerzeichen zwischen "</font>" und "<br>" weg lässt, dann rendert die Komponente es falsch, da scheint der Parser wohl einen Bug zu haben ...
--
Just try it

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: Suche nach Chat Komponente

Beitrag von theo »

Ich habe mit dem HTMLViewer eigentlich recht gute Erfahrungen gemacht.
Melde dein spezifisches Problem doch im entsprechenden Bugtracker, manchmal gibt es sogar eine Antwort.
https://github.com/BerndGabriel/HtmlVie ... is%3Aissue

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Suche nach Chat Komponente

Beitrag von corpsman »

Das Problem ist, dass ich es aktuell noch nicht safe Rekonstruieren kann :/. Ich hatte gehofft, das jemand estwas in der Art "Ahh für so wenig nutze doch ****" schreibt.

Aktuell habe ich meine Anwendung derart umgestrikt, dass ich mittels einem Define zwischen Beiden Versionen umschalten kann, damit kann ich leichter Testversionen raus geben.
By the way, wenn der Plan den ich aktuell verfolge aufgeht, stelle ich den Code des Programms am We auch auf meine Github Seite. Dann kann ich den "testerkreis" auch deutlich vergrößern ;)
--
Just try it

Mathias
Beiträge: 6209
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Suche nach Chat Komponente

Beitrag von Mathias »

-> TRichMemo bekomme ich unter Linux nicht mehr zum laufen, fällt also leider auch weg :(
Evtl. Synedit, welches bei Lazarus immer dabei ist.
Farben kann es, aber ob es rechtsbündig kann, bin ich überfragt.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: Suche nach Chat Komponente

Beitrag von theo »

Mathias hat geschrieben:
Mi 6. Dez 2023, 13:50
Evtl. Synedit, welches bei Lazarus immer dabei ist.
Farben kann es, aber ob es rechtsbündig kann, bin ich überfragt.
Nein, das kann nur Code nach vorgegeben Regeln einfärben.
Das hat mit einem RichEditor etc. überhaupt nichts zu tun und es kann auch nicht dahingehend "hingebogen" werden.

@corpsman: Hast du LazRichView, lzRichEdit etc. schon ausprobiert?

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Suche nach Chat Komponente

Beitrag von corpsman »

@theo
Ui nope das kannte ich noch nicht, werde das morgen gleich mal testen, grad läuft der Test mit dem TIpHtmlPanel
--
Just try it

MmVisual
Beiträge: 1470
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Suche nach Chat Komponente

Beitrag von MmVisual »

Ich hatte auch mal ein Chat Programm geschrieben und für die Darstellung der Messages THtmlViewer verwendet.
Da kann man relativ einfach eingene Designs für die Chat Nachrichten schreiben und da drin dann nur den eigentlichen Nachrichtentext ersetzen.
Ich war damit zufrieden wie das ging.

Beispiel eines Chat EIntrages:

Code: Alles auswählen

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
body, td {
  font-family: Arial, Helvetica, sans-serif;
}
.chat {
  font-size: 26px;
  color: #333333;
}
.msgt {
  font-size: 8px;
  font-style: italic;
  color: #006600;
  vertical-align: bottom;
  text-align: right;
}
</style>
</head>
<body leftmargin="0" topmargin="0" marginwidth="2" marginheight="2">
<table border="0" cellspacing="0" cellpadding="3" align="left" bgcolor="#C0DCC0">
  <tr> 
    <td class="chat">$CHAT$</td>
    <td class="msgt"><table border="0" cellspacing="0" cellpadding="0"><tr><td align="center">$MsgT$</td></tr></table></td>
  </tr>
</table>
</body>
</html>
Leider habe ich es nicht ganz geschafft das Programm fertig zu bekommen (Zeitmangel). Jedoch Einzelchat, auch über Internet hat gut funktioniert.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Suche nach Chat Komponente

Beitrag von corpsman »

So nach 2 Tagen Tasten habe ich nun Ergebnisse.
Das TIpHtmlPanel scheint unter Linux Stabiler zu laufen, zumindest bezüglich des gemeldeten Fehlers. Seit gestern funktioniert nun auch endlich der File Transfer *g*. Mit Port Forwarding kann man auch Personen außerhalb des Netzwerkes anbinden, da mein Chat Program ja IP-Basiert ist.
Aktuell habe ich noch ettliche andere "kinderkrankheiten" drin, vor allem unter Linux funktioniert so einiges nicht wie ich das erwarten würde, ggf starte ich dazu aber separate Threads weil das ja nichts mehr mit diesem hier zu tun hat ;).

Danke fürs Brainstormen und die Hints @MmVisual dein Ansatz gefällt mir auch, das werde ich definitiv auch noch evaluieren *g*.
--
Just try it

Antworten