![]() |
kann bei OnConnect keine TStrings liste übergeben
Hey leute,
Ich bin gerade dabei einen chat zu machen. Und das mache ich mit ServerSocket und ClientSocket, und was klar ist wenn der Client connected braucht er eine liste mit den leuten die schon im chat sind. Und diese liste gibt es auf dem Server. Also übergeb ich die list von einer ListBox in TStrings. Also ungefähr so:
Delphi-Quellcode:
Also damit ihr das noch besser versteht, hier die source:
Server:
Nachricht.More(Listbox1.Items); //More ist TStrings Client: Listbox1.Clear; Listbox1.Items.AddItems(Nachricht.More); //Natürlich noch die nachricht davor empafangen ![]() Ich versteh einfach nicht warum das nicht funktioniert. Danke im voraus!! |
Re: kann bei OnConnect keine TStrings liste übergeben
Ist .More jetzt eine Eigenschaft oder Methode?
|
Re: kann bei OnConnect keine TStrings liste übergeben
Delphi-Quellcode:
type TChatNachricht = Record
Nickname: string[255]; Text: string[255]; Text2: string[255]; More: TStrings end; |
Re: kann bei OnConnect keine TStrings liste übergeben
Delphi-Quellcode:
Nachricht.More.Assign(Listbox1.Items);
|
Re: kann bei OnConnect keine TStrings liste übergeben
Danke :-D
doch jetzt kommt eine Address Violation beim Server. |
Re: kann bei OnConnect keine TStrings liste übergeben
Und andersherum?
|
Re: kann bei OnConnect keine TStrings liste übergeben
Da es sich um ein Objekt handelt, musst Du es zunächst erst instanziieren. Hast Du daran gedacht?
|
Re: kann bei OnConnect keine TStrings liste übergeben
Nein, und ich weis auch nicht was das heist.
Bitte um erklärung |
Re: kann bei OnConnect keine TStrings liste übergeben
Damit meine ich, dass Du bei TStrings erstmal irgendwo ein Create aufrufen musst.
|
Re: kann bei OnConnect keine TStrings liste übergeben
Ich hab das:
Delphi-Quellcode:
und das:
Nachricht.Nickname := 'Hello';
Nachricht.More.Create; Nachricht.More.Assign(Listbox1.Items); Socket.SendBuf (Nachricht, SizeOf(Nachricht));
Delphi-Quellcode:
Jetzt kommen immernoch erors. Nur ich glaub das liegt daran das ich es beim Client auch noch Createn muss.
Nachricht.Nickname := 'Hello';
Nachricht.More.Create. Assign(Listbox1.Items); Socket.SendBuf (Nachricht, SizeOf(Nachricht)); Aber ich weis nicht wie ich das machen muss. Ich habs jetzt mal so versucht:
Delphi-Quellcode:
Idee?
Nachricht.More.Create;
Socket.ReceiveBuf (Nachricht, SizeOf(Nachricht)); if Nachricht.Nickname = 'Hello' then begin Listbox1.Clear; Listbox1.Items.AddStrings(Nachricht.More); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 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 by Thomas Breitkreuz