Autor Beitrag
tholmer
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Di 13.12.05 19:28 
Hi,

seit ein paar Tagen versuche ich mich an der ICQ Komponente TICQClient. Es sieht auch ganz gut aus. Ich habe nur ein Problem und das wäre die Kontaktliste. Wie kann ich einen User zur serverseitigen Kontaktliste hinzufügen? Ich kenn die procedure SSLAddUser() aber das geht nicht, ich weiß nicht warum. So sieht das erstmal bei mir aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
procedure TForm1.AddBtnClick(Sender: TObject);
var Item: TListItem;
begin
//In INEdt steht die UIN die hinzugefügt werden soll
//und durch Klick auf den Buttn AddBtn wird eine Erlaubnisanfrage geschickt
if StrToInt(INEdt.Text) <> 0 then
begin
  icq.SendAuthRequest(150926842,'Ich bins, es Tholmer Kindl');
end;

procedure TForm1.icqAuthResponse(Sender: TObject; UIN: String;
  Granted: Boolean; Reason: String);
begin
  icq.SSLChangeStart(true);
  if Granted then
    icq.SSLAddUser(00100025, UIN, '''', False, False)
  else
    icq.SSLAddUser(00100025, UIN, '''', False, True);               
  icq.SSLChangeEnd;
end;
procedure TForm1.icqSSLChangeResponse(Sender: TObject; ErrorCode: Word);
begin
  EventMemo.Lines.Add(IntToStr(ErrorCode));
end;


Ich habe mir das aus der Hilfe zu der Komponente abgeguckt. Da stellt sich mir die Frage der UserID 0025. In der Hilfe steht es soll ein Zufallswert zwischen 0 und 32... sein, heißt das das mehrere User in der Kontaktliste die gleiche UserID haben können? Auf jeden Fall habe ich nun einem Kumpel von mir über die oben angegeben Prozedur eine Erlaubnisanfrage geschickt, funktioniert *froi*. Dann nimmt er an und ich bekomme erstens eine Meldung 'Sie wurden von bla in seine Kontaktliste aufgenommen' und zweitens einen Fehlercode 0 von onSSLChangeResponse, dass bedeutet das der Benutzer evtl abgelehnt hat (obwohl er ja angenommen hat), oder er existiert nicht (kann nicht sein) oder der steht schon in der Liste (kann auch nicht sein, da nur einer bis jetzt in meiner Kontaktliste (von der neuen registerieten Nummer) steht und den habe ich übers normale ICQ hinzugefügt). Ich versteht auch nicht den Sinn von der StringList ContactList von TICQClient. Nochmal zusammengefasst: Das hinzufügen von Usern in die serverseitige Kontaktliste funktioniert nicht, schließlich will ich ja nicht nur von zuhause, wo ich die Kontaktliste in einer TextDatei schreiben könnt, sondern auch mal von woanders auf die ICQ Nummer zugreifen und die Kontakte haben. Evtl könnte mir noch einer die Logik von der TICQClient.ContactList erklären und was da dieses AddContact soll, mit der Prozedur konnte ich auch noch nichts anfangen.

Ich habe schon hier die Suche benutzt und auch Google. Ihr seit meine letzte Hoffnung :D

mfg, tholmer