![]() |
Checkbox und andere Kleinigkeiten
Hi zusammen,
ich bin nicht sicher, ob es eine ähnliche Anfrage schon einmal gegeben hat, aber mit der Suchfunktion hab ich jedenfalls nichts gefunden was mir wirklich weiterhilft. Ich möchte ein Programm schreiben, das sowohl chatten ermöglicht (was bereits ausreichend funktioniert) und, das bestimme Informationen, die alle Clients beeinflussen können weiterleitet. Beispielsweise den Zustand einer CheckBox. Es soll so aussehen, dass wenn der Client einen bestimmten Button drückt eine Überprüfung stattfindet, ob der Server (oder ein anderer Client) beispielsweise eine Checkbox aktiviert hat. Wenn ja soll eine bestimmte Information angezeigt werden, ansonsten was anderes. Hab jetzt schon einige Sachen ausprobiert und am geeignetsten dafür halte ich wohl etwas wie SendBuf, nur irgendwie krieg ich das damit nicht wirklich gebacken...weiss nicht genau wass ich für Count angeben soll. Hatte es so versucht Zustandsabhängig von der Checkbox einer Variablen eine Zahl zuzuordnen, diese soll weitergeleitet werden...aber es kommt immer "Nicht genug wirkliche Parameter" was wohl auch an dem fehlenden Count liegen kann, aber was geb ich da dann an? Hoffe Ihr versteht was ich meine... Vielleicht kann mir ja jemand helfen, beispielsweise mit nem Beispiel-Quellcode. Hab früher viel mit Delphi gemacht, aber sowas bisher noch nie, daher ist das etwas schwierig :-D mfg und Danke im Voraus |
Re: Checkbox und andere Kleinigkeiten
Der Client könnte den Zustand der CheckBox o.ä. bzw. dessen Änderung dem Server mitteilen, der andere Client könnte ihn dann beim Server abfragen.
|
Re: Checkbox und andere Kleinigkeiten
Okay, und wie genau kann ich das realisieren? Weisst du das zufällig? Bin ich mit SendBuf überhaupt auf dem richtigen Weg?
|
Re: Checkbox und andere Kleinigkeiten
Ich vermute mal es geht um anwesend/abwesend o.ä.
Wie funktioniert die Kommunikation zwischen Client/Server? Läuft diese über den Server oder peer-by-peer ? |
Re: Checkbox und andere Kleinigkeiten
Ja in etwa so...
Nunja, Basis für das Programm ist ein Demo-Programm von Delphi. Dabei verbinden sich die Clients mit dem Server über Angabe der IP oder des Computernamens. Aber nur damit es nicht zu Verwirrungen kommt....das Programm soll quasi so funktionieren: Der Server oder ein Client ändert eine gewisse Größe (Bsp: Checkbox-Zustand)... Wenn ein anderer Client EINEN Bestimmten Button drückt, der dieser bestimmten Checkbox entspricht, soll eine Information erscheinen. |
Re: Checkbox und andere Kleinigkeiten
Du musst dir ein Protokoll ausdenken!
Ohne Protokoll ist das Ganze zum scheitern verurteilt. Schreib dir alle Befehle auf, die der Client an den Server senden könnte (z.B. LOGIN , LOGOUT, USERLIST, KILL USER, UPLOAD, SETVAR xy=...) Mit SETVAR kann der Client bestimmte Variablen auf dem Server ändern. Der Server muss auf diese Befehle antworten (z.B. OK, ERROR ..., STATUS, ...) und hat auch eigene Befehle (TEXT xy "das ist der Text, den User xy eingetippt hat", ... ) |
Re: Checkbox und andere Kleinigkeiten
Hmm...okay. Und wie übertrage ich das dann? Mein Problem ist, dass ich nicht weiss wie ich das genau realisieren soll...
|
Re: Checkbox und andere Kleinigkeiten
Zitat:
Angenommen der Client sendet LOGIN Socke Der Server analysiert die Daten bis zum Carriage-Return (der Abschluss für jeden Befehl). Erkennt er "LOGIN" extrahiert er das, was danach kommt (der Username) und ruft seine Login-Funktion auf. Wenn die Login-Funktion ihr ok gibt, sendet der Server an den Client: OK andernfalls: ERROR login failed Irgendwo hier auf der DP wurde schon mal so ein Parser für Befehle vorgestellt; vielleicht weiss ja noch jemand, wo der Artikel ist. Die Befehle von oben sind nur eine Möglichkeit, man kann z.B. auf XML-Daten verschicken. XML hat den Vorteil, dass man es beliebig ausbauen und erweitern kann; Nachteil ist die grössere Datenmenge und die Komplexität (nix für Anfänger). Nachtrag: für den Anfang braucht man die Daten nicht mal übers Netzwerk übertragen. Angenommen du hast ein Programm mit 3 Formularen (2 * Client, 1 * Server) Jedes Formular hat folgende Funktion:
Delphi-Quellcode:
Dann kannst du alles ohne Netz als Trockenübung in einem Prog. testen.
procedure DataIn(const daten:string);
Später werden die Daten über TCP/IP gesendet anstatt DataIn direkt aufzurufen. |
Re: Checkbox und andere Kleinigkeiten
Ok und wodurch könnte ich hinterher das DataIn genau ersetzen? Bzw. wie sähe die ganze Befehlszeile dafür aus?
Also Beispielsweise sowas wie ServerSocket.Socket.SendWASAUCHIMMER..... bin da im Moment irgendwie mit überfordert :-) sry |
Re: Checkbox und andere Kleinigkeiten
Zitat:
Delphi-Quellcode:
Hier gibt's ein Chatprog. + Beschreibung zum einstieg:
var daten:string;
... daten := 'LOGIN test'+#13; ServerSocket.Socket.SendBuf(daten[1], length(daten)); ![]() |
Re: Checkbox und andere Kleinigkeiten
Ok, das scheint soweit zu funktionieren.... muss nur noch ein paar Kleinigkeiten regeln. Danke für die schnelle Hilfe
Aber wofür steht die [1] in dem SendBuf? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz