![]() |
Chat - Wie Benutzer vom Server entfernen?
Hi,
das Problem ist etwas schwierig zu erklären, aber ich versuche es mal. Ich möchte einen Chat programmieren. Jeder Benutzer hat eine ID von Null bis zur maximalen Benutzer Zahl. Ich habe folgenden record für die Benutzer erstellt:
Delphi-Quellcode:
Die Benutzer selbst werden dann in einem dynamischen Array von TUserList gespeichert.
type
PUserList = ^TUserList; TUserList = record [...] szName: String[255]; dwID: Integer; [...] end; Jetzt kommt die Frage, wie ich am besten einen Benutzer entferne. Wenn wir z.B. vier Benutzer haben und der zweite Benutzer mit der ID geht, dann könnte ich doch von oben, also von High(arrUserList) downto BenutzerID loopen und ihn dann entfernen? Das habe ich schon probiert, aber es will nicht so recht klappen:
Delphi-Quellcode:
Leider funktioniert es nicht. :/
var
TempList: array of TUserList; begin try for g := High(arrNickList) downto lpUserID+1 do begin //arrNickList ist das dynamische Array, wo die Benutzerdaten gespeichert werden. SetLength(TempList, High(arrNickList)); CopyMemory(@TempList, @arrNickList, sizeof(arrNickList)); ShowMessage(arrNickList[g-1].szName + ' (' +inttostr(arrNickList[g-1].lpID)+ ') becomes ' + TempList[g].szName + ' (' +inttostr(TempList[g].lpID)+ ')'); arrNickList[g-1] := TempList[g]; arrNickList[g-1].lpID := g-1; end; SetLength(arrNickList, UserCount-1); except on E: EAccessViolation do Log_Console('ERROR: Can not refresh the user list of server (' + E.Message + ')', false); end; end; Gibt es noch andere Methoden, wie man einen Benutzer entfernen könnte, ohne dabei die anderen gespeicherten Daten zu verlieren? MfG: sk0r |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 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