Warum sollte ich eine
Exception auslösen wenn der Username schon vergeben ist ? dafür hab ich doch folgenden Code
zu 3tens:
Delphi-Quellcode:
function TUserlist.ChangeNickName(oldname,newname:
string; Socket: TServerSocket; mylist: TListbox):
string;
var a,b,c: integer;
begin
b := 0;
for a := 1
to length(Userdaten) - 1
do
begin
if (Userdaten[a].Username = oldname)
then
c := a;
if (Userdaten[a].Username = newname)
then // wenn der name vergeben ist dann höre auf sagt er hier
begin
Result := '
*** Name bereits vergeben! ***';
// und test's haben bewiesen das es so auch funktioniert
b := 1;
Exit;
// und das sogar ohne Exception
end;
end;
if (b = 0)
then
begin
for a := 0
to mylist.Count - 1
do
begin
if (mylist.Items[a] = oldname)
then
mylist.Items[a] := newname;
end;
Userdaten[c].Username := newname;
Broadcast('
Namechange: '+oldname+'
=> '+newname,Socket);
Result := '
';
end;
end;
welche erst nachschaut ob ein name schon vergeben ist und dann erst den namen ändert, oder hab ich da was falsch verstanden ?
ebenso werd ich die sache wo man die listbox angeben muss(bisher) demnächst noch ne überladene version ohne listbox hinzufügen
damit man auch wenn man keine listbox hat das ganze nutzen kann.
zu 2tens:
mit listen hab ich davor schon versucht zu arbeiten :/ nachdem ich jede menge exceptions bekommen hab durch
den normalen betrieb hab ichs aufgegeben und bin zu meiner version übergegangen ^^ die ich wenn ich ehrlich bin
irgendwie lieber mag ^^
zu 1tens:
mhh du meinst also ich brauch das mit der id nicht und sollte lieber logindatum mit speichern pro user.
das müsste ich ne menge abändern ^^
Achja hätte den auch wer ne idee zum dem Problem was ich geschildert hab ?
@ taaktaak
ein server kostet geld das ist richtig, ob viel oder wenig sei dahingestellt, allerdings was die wechselnden
ip's angeht
dafür hab ich ja in meinem chatprogramm das "Onlineupdate" eingebaut, der server tut auf einer php seite einfach eine
ip hinterlegen
die dann vom clienten abgefragt wird und schon weiß der client wo sich der server befindet.
und nen kleinen webspace bekommst auch heute noch geschenkt.
EDIT:
Wobei ich gestehen muss das beim Usernamen noch die möglichtkeit der nutzung von leerzeichen
besteht welche ich auch noch vor hatte zu eliminieren.