Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Kontaktliste mit ICQLib anzeigen? (https://www.delphipraxis.net/51177-kontaktliste-mit-icqlib-anzeigen.html)

Gentleman 7. Aug 2005 20:30


Kontaktliste mit ICQLib anzeigen?
 
Hi!

Ich habe mich etwas mit der ICQLib beschäftigt, da ich einiges darüber hier in der DP gelesen habe. Ich würde gerne wissen ob man mit ICQClient bzw ICQDb die Kontaktliste aus dem Internet laden kann. Und wenn ja, wie funktioniert das? Ich hoffe ihr könnt mir helfen.

mfg
Gentleman

Gentleman 11. Aug 2005 21:32

Re: Kontaktliste mit ICQLib anzeigen?
 
ich habe eine einfache Lösung gefunden. ich werde sie hier mal posten, falls sie auch noch andere interessiert.

ICQ Kontaktliste vom Server laden.
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  ICQClient1.RequestContactList;
end;
UINs der Kontakte auflisten:
Delphi-Quellcode:
procedure TForm1.ICQClient1ServerListRecv(Sender: TObject;
  SrvContactList: TList);
var
  i: Word;
  UserInfo: TUINEntry;
begin
  if SrvContactList.Count > 0 then
    for i := 0 to SrvContactList.Count - 1 do
    begin
      UserInfo := PUINEntry(SrvContactList.Items[i])^;

      if Length(IntToStr(UserInfo.UIN))= 9 then
        begin
          if ICQClient1.AddContact(UserInfo.UIN) then
            begin
              ListBox1.Items.Add(IntToStr(UserInfo.UIN));
            end;
        end;
    end;
  ICQClient1.DestroyUINList(SrvContactList);
end;
Also, wie gesagt, diese Lösung ist mehr als einfach gestrickt. D.h. es findet keine Unterscheidung statt, ob die User online, offline, away, usw. sind. Es werden alle Kontakte per UIN aufgelistet, die auf er Kontaktliste setehen. Der Code ist aber durchaus noch erweiterbar. :stupid:


Gruß
Gentleman

MisterNiceGuy 11. Aug 2005 23:24

Re: Kontaktliste mit ICQLib anzeigen?
 
Öhm das ist genau die Procedure die auch in den Demos stehen wenn ich mich nicht irre. :mrgreen:

gsh 12. Aug 2005 00:29

Re: Kontaktliste mit ICQLib anzeigen?
 
Also diese Zeile:
Delphi-Quellcode:
if SrvContactList.Count > 0 then
kannsts du echt vergessen den die for schleife "prüft" des schon ab.

Warum nicht so (ist etwas einfacher)
Delphi-Quellcode:
procedure TForm1.ICQClient1ServerListRecv(Sender: TObject;
  SrvContactList: TList);
var
  i: Word; //word? warum nicht integer
  UserInfo: TUINEntry;
begin
  for i := 0 to SrvContactList.Count - 1 do
  begin
    UserInfo := PUINEntry(SrvContactList.Items[i])^;
    if (Length(IntToStr(UserInfo.UIN))= 9) and
       (ICQClient1.AddContact(UserInfo.UIN)) then
    begin
      ListBox1.Items.Add(IntToStr(UserInfo.UIN));
    end;
  end;
  ICQClient1.DestroyUINList(SrvContactList);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz