Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Projektplanung und -Management (https://www.delphipraxis.net/85-projektplanung-und-management/)
-   -   Chatprogramm ICQ-ähnlich (https://www.delphipraxis.net/157584-chatprogramm-icq-aehnlich.html)

addi1000 17. Jan 2011 13:07

Chatprogramm ICQ-ähnlich
 
Hallo,
heute startet meine Projektfase für das erstellen eines Chatprogramms. Ich dachte dabei an einen Login, eine Registrierungsseite und nach login eine Kontaktliste mit IDs bzw. Nicknames der User. Nach doppelklick auf einen Kontakt sollte man sich mit diesm unterhalten können. Da meine Delphi kenntnisse bisher nicht die Besten sind hoffe ich hier auf Hilfe und Tipps :wink:.. Momentan habe ich Delphi 7 Architekt.

Vielen Dank im Vorraus
Addi :)

H3llsing 17. Jan 2011 13:18

AW: Chatprogramm ICQ-ähnlich
 
Erstmal Herzlich Willkommen in der DP

Als kleine Anregung findest du ein riesen Sortiment an kleinen Tutorials und Tipps & Tricks rund um Delphi auf Delphi-treff.de.
Dort kannst du deine Fähigkeiten im Umgang mit Delphi erweitern =)

Für einen Chat bietet sich natürlich die TCP Variante von den Indys an. Vielleicht solltest du dir dazu auch Tutorials durchlesen wie man einen Server und Clienten programmiert und Nachrichten verschickt =)

addi1000 17. Jan 2011 13:27

AW: Chatprogramm ICQ-ähnlich
 
Gut, danke :)

Ich werde es mir anschauen und werde bestimmt noch weitere Fragen während des Projekts haben. Da ich Delphi 7 von einem Freund habe, kann ich diese Version nicht registrieren und damit nicht Updaten und somit auch das neue Indy nicht verwenden :(

Zunächst setze ich mich mit den Äußerlichkeiten außeinander :wink:

Gruß
Addi

generic 17. Jan 2011 14:08

AW: Chatprogramm ICQ-ähnlich
 
Zitat:

Zitat von addi1000 (Beitrag 1075272)
kann ich diese Version nicht registrieren und damit nicht Updaten und somit auch das neue Indy nicht verwenden :(

Das hat nichts miteinander zu tun.
Indy sind externe Komponenten.
Diese können bei dem Hersteller heruntergeladen werden:
http://www.indyproject.org/Sockets/D...lation.DE.aspx

hans ditter 17. Jan 2011 14:41

AW: Chatprogramm ICQ-ähnlich
 
Vielleicht hilft dir auch dieses Thema:
Hier im Forum suchenChat mit PM

(Oder unten in der Klammer hinter dem --> klicken. Führt dann direkt zu dem Thema)

addi1000 17. Jan 2011 15:01

AW: Chatprogramm ICQ-ähnlich
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke, sehr hilfreich, werde ich noch gebrauchen können :)

Das mit dem indy werde ich morgen testen, da ich momentan mit Delphi6 an einem anderen PC arbeite. Die Oberfläche wäre soweit fertig -> siehe Anhang.
Verbesserungsvorschläge nehme ich gerne an :wink:

Gruß
Addi

patti 17. Jan 2011 15:08

AW: Chatprogramm ICQ-ähnlich
 
Zitat:

Zitat von addi1000 (Beitrag 1075298)
Die Oberfläche wäre soweit fertig -> siehe Anhang.
Verbesserungsvorschläge nehme ich gerne an :wink:

Ok, dann hier ein "Verbesserungsvorschlag": Fange deine Programme nie mit der Oberfläche an, die sollte immer am Schluss stehen, also erst, wenn alle Features des Programms bereits implementiert wurden. Das hilft dir, wesentlich besseren Code zu schreiben. Hat man zuerst die Oberfläche, wird man (gerade als Anfänger, der du ja - wie du es selbst zugegeben hast - noch bist) sehr leicht verleitet, Quelltext irgendwie in OnClick-Methoden o.ä. "reinzufrickeln". Trenne "eigentliche Arbeit" und "Oberfläche" deines Programms strikt, das wird dir sicherlich helfen!

mfg

Metallicwar 17. Jan 2011 16:03

AW: Chatprogramm ICQ-ähnlich
 
hehe, diesen Fehler habe ich auch immer gemacht, immer erst mit der Oberfläche angefangen.
Aber kümmer dich besser erstmal um die Programmierung, die Oberfläche ist dann eigentlich "Pille Palle"
KÜMMER DICH ZUERST um das SCHWIERIGSTE :)

addi1000 17. Jan 2011 16:44

AW: Chatprogramm ICQ-ähnlich
 
Das heißt zuerst Verbindung aufbauen können, dann Kontaktliste etc und Login :).
Werde mich morgen damit auseinandersetzen. Dachte dabei daran, dass jeder Benutzer eine ID bekommt, welche dann in der Kontaktliste erscheint. Eben wie ICQ.. Wie ist das zu machen? :wink:

Gruß
Addi

patti 17. Jan 2011 19:56

AW: Chatprogramm ICQ-ähnlich
 
Zitat:

Zitat von addi1000 (Beitrag 1075317)
Wie ist das zu machen? :wink:

Das kann man so pauschal nicht sagen, das hängt ja beispielsweise auch davon ab, wie du das ganze realisieren willst. Soll der gesamte Chat über einen zentralen Server laufen oder lässt ein Benutzer den Server lokal bei sich auf dem Rechner laufen und die anderen Benutzer, die lediglich den Client ausführen, müssen dann dessen IP-Adresse kennen?

Auf jeden Fall musst du dir eine Art Chat-Protokoll überlegen, also wie deine Nachrichten von Client zu Server aufgebaut sein sollen, damit du nicht nur Text-Nachrichten verschicken kannst, sondern dem Server beispielsweise auch mitteilen kannst, wenn sich ein Benutzer an- oder abmeldet o.ä.

Im einfachsten Fall kannst du dir "Schlüsselwörter" überlegen, die dem Server eine bestimmte Aktion seitens des Benutzers mitteilen. So könnte beispielsweise "#login Nickname" dafür stehen, dass sich der Bentuezr mit dem Namen "Nickname" soeben am Server angemeldet hat. Der Server kann auf solche Nachrichten dann entsprechend reagieren und den Clients beispielsweise die aktualisierte Benutzer-Liste schicken.

Hier im Forum sollte sich einiges zu Chat-Programmen und Ideen für solche einfachen Protokolle finden lassen, da so ein Chat-Programm wohl ein recht beliebtes Projekt ist. Leider scheinen viele die eigentliche Arbeit dahinter zu unterschätzen und so wird aus den meisten solcher Projekte oft nur ein Stück Software, das wenn überhaupt nur mehr schlecht als recht funktioniert...

mkinzler 17. Jan 2011 20:11

AW: Chatprogramm ICQ-ähnlich
 
Willst du "nur" die Oberfläche programmieren oder die komplette Infrastruktur (Protokoll, Server, ...)?

addi1000 18. Jan 2011 16:10

AW: Chatprogramm ICQ-ähnlich
 
Zitat:

Willst du "nur" die Oberfläche programmieren oder die komplette Infrastruktur (Protokoll, Server, ...)?
natürlich sollte es möglich sein zu chatten :P

Zitat:

Soll der gesamte Chat über einen zentralen Server laufen oder lässt ein Benutzer den Server lokal bei sich auf dem Rechner laufen und die anderen Benutzer, die lediglich den Client ausführen, müssen dann dessen IP-Adresse kennen?
ich habe mir überlegt, den server zu nutzen um den clienten die kontaktliste zu senden (mit zugehöriger clienten IP) und diese über den onlinestatus der personen in der kontaktliste zu informieren. die nachrichten können auch direkt von client an client gesendet werden denke ich.. wäre wohl am einfachsten :)

das mit dem eigenen chat-protokoll müsste ich mich dann noch informieren, wie das zu machen ist.
soviel zu meiner grundidee :)
momentan liege ich aber mit 40° fieber im bett und werde mich im laufe der nächsten tage informieren.

Gruß
Addi

rollstuhlfahrer 18. Jan 2011 16:18

AW: Chatprogramm ICQ-ähnlich
 
Also wenns wirklich nur die Oberfläche sein soll, dann würde ich Jabber empfehlen. Das ist intern mit XML aufgebaut und gar nicht mal so schwer, die Grundfunktionen zu implementieren. Wenn du das dann auch noch verenden willst, gibt es serverseitige Jabber-Transporter, die dir helfen, deinen z.B. ICQ-Account in deine Jabber-Kontaktliste aufzunehmen.

Bernhard

addi1000 18. Jan 2011 16:21

AW: Chatprogramm ICQ-ähnlich
 
Zitat:

Zitat von rollstuhlfahrer (Beitrag 1075584)
Also wenns wirklich nur die Oberfläche sein soll, dann würde ich Jabber empfehlen. Das ist intern mit XML aufgebaut und gar nicht mal so schwer, die Grundfunktionen zu implementieren. Wenn du das dann auch noch verenden willst, gibt es serverseitige Jabber-Transporter, die dir helfen, deinen z.B. ICQ-Account in deine Jabber-Kontaktliste aufzunehmen.

Bernhard

achso, nein :-D das ganze sollte unabhängig sein also, ja, ich möchte ein eigenes protokoll :wink:

addi1000 9. Feb 2011 09:32

AW: Chatprogramm ICQ-ähnlich
 
Liste der Anhänge anzeigen (Anzahl: 1)
SOOO mein Chatprogramm sieht schon ganz gut aus. Registrierung, Login und eine Kontaktliste sind realisiert. Auch Nachrichten kann ich schon schreiben.. Wie kann ich nun, wenn eine Nachricht eingeht, die nicht von dem Kontakt ist mit dem ich schreiben, ein neuer Tab geöffnet wird? (mit dem chattext des neuen kontaktes) Also so wie in ICQ.. für ansätze wie ich da ran gehen soll wäre ich sehr dankbar. :)

Mein Projekt ist im Anhang ;) da kann man auch sehen wie Nachrichten verschickt werden.

lg Addi

rollstuhlfahrer 9. Feb 2011 14:49

AW: Chatprogramm ICQ-ähnlich
 
Ganz einfacher Ansatz: Du merkst, dass eine Nachricht kommt. Dies veranlasst, dass ein Tab geöffnet wird (so, als würdest du gerne mit diesem Chatten) und dann wird da die Nachricht reingeschrieben oder der Tab holt sich per Event/o.Ä. die Nachricht ab.

Bernhard

JannesDKS 9. Feb 2011 15:16

AW: Chatprogramm ICQ-ähnlich
 
benutzt du eine Firebird-Datenbank? Wenn ja, dann schau dir mal die Funktionalität POST_EVENT an. Das hilft dir bestimmt weiter.

addi1000 9. Feb 2011 20:27

AW: Chatprogramm ICQ-ähnlich
 
nein ich benutze keine datenbank ^^

ich werde das morgen mit den tabs mal testen..

PhilmacFLy 16. Feb 2011 11:55

AW: Chatprogramm ICQ-ähnlich
 
Zitat:

Zitat von rollstuhlfahrer (Beitrag 1075584)
Also wenns wirklich nur die Oberfläche sein soll, dann würde ich Jabber empfehlen. Das ist intern mit XML aufgebaut und gar nicht mal so schwer, die Grundfunktionen zu implementieren. Wenn du das dann auch noch verenden willst, gibt es serverseitige Jabber-Transporter, die dir helfen, deinen z.B. ICQ-Account in deine Jabber-Kontaktliste aufzunehmen.

Bernhard

[klugscheiss]
Das heisst jetzt XMPP und nicht mehr Jabber
[/klugscheiss]

jokerfacehro 7. Mär 2011 17:27

AW: Chatprogramm ICQ-ähnlich
 
Hallo,

ich habe vor paar Jahren auch mal einen Chat geschrieben.
Ich habe damals ein Zeichen-terminiertes Protokoll genutzt, was für den Anfang auch garnicht schlecht ist. Dazu gibt es auch viele Tuts.

Aber bevor du deinen Chat wie ICQ ausbaust, gebe ich dir einen Tipp:
beschäftige dich zuerst mit den Verbindungsgeschichten und Netzwerkgrundlagen.

Das Schwierigste ist nicht eine Verbindung aufzubauen oder Text zu senden, sondern das ganze Handling drum herum. Z.B. Was passiert, wenn der Server oder Client die Verbindung trennt. Oder was passiert wenn der Client-Benutzer den Prozess killt und kein Disconnect-Befehl zum Server kommt (siehe Ping-Timeout).

Da hab ich am meisten bei gelernt :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 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