Hallo,
das Thema um meinen Instant Messenger wird immer interessanter. Mittlerweile kommen die Kontakte rein, diese können auch on und off gehen, man kann sie anklicken und sie anschreiben plus man kann selbst Nachrichten empfangen.
Doch jetzt tut sich ein unheimlich merkwürdiges Problem auf:
Urplötzlich ist bei mir die empfangene Serverliste "SrvContactList" auf nur einen Eintrag beschränkt. SrvContactList.Count ist bei mir jetzt immer '1'. Und das NUR bei meiner 8stelligen UIN. Logge ich mich mit einer 9stelligen UIN ein, so werden alle Kontakte angezeigt. Ich werkel schon den ganzen Tag daran und der Quelltext ist korrekt. Mit der 8stelligen UIN klappt es nicht, mit der 9stelligen schon.
Hier mein Quelltext zum Abrufen:
Delphi-Quellcode:
procedure Tmain.icqServerListRecv(Sender: TObject; SrvContactList: TList);
var
i: Word;
UserInfo: TUINEntry;
UINNickItem: PUINNickItem;
begin
if SrvContactList.Count > 0 then
for i := 0 to SrvContactList.Count - 1 do
begin
UserInfo := PUINEntry(SrvContactList.Items[i])^;
if UserInfo.CType = 0 then
begin
GetMem(UINNickItem, SizeOf(UINNickItem^));
UINNickItem^.UIN := UserInfo.UIN;
UINNickItem^.Nick := UserInfo.Nick;
UINNickList.Add(UINNickItem);
end;
UINNickList.Sort(CompareByName);
end;
for i := 0 to UINNickList.Count - 1 do
begin
if GetStatusFor(PUINNickItem(UINNickList.Items[i])^.UIN) <> 'DND' then
begin
UINNickListOnline.Add(UINNickList.Items[i]);
end;
end;
UINNickListOnline.Sort(CompareByName);
for i := 0 to UINNickListOnline.Count - 1 do
begin
kontaktliste.AddItem(PUINNickItem(UINNickListOnline.Items[i])^.Nick, Self);
end;
icq.DestroyUINList(SrvContactList);
end;
Hat noch wer schonmal das Problem gehabt?