Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.05.2009, 22:32
Аватар для zorazo
zorazo zorazo вне форума
Прохожий
 
Регистрация: 05.05.2009
Сообщения: 18
Репутация: 10
Смех Листинг загрузки контакт -листа

Народ помогите, я пишу свой icq клиент, мне нужно чтобы моя ася загружала контакт-лист
__________________
Стекл как трезвышко
Ответить с цитированием
  #2  
Старый 06.05.2009, 22:36
Аватар для zorazo
zorazo zorazo вне форума
Прохожий
 
Регистрация: 05.05.2009
Сообщения: 18
Репутация: 10
По умолчанию

вот листинг:
Код:
procedure TMainForm.ICQClient1ServerListRecv(Sender: TObject;
  SrvContactList: TList);
var
  i: Word;
  UserInfo: TUINEntry;
  ListItem: TListItem;
begin
  if SrvContactList.Count > 0 then
    for i := 0 to SrvContactList.Count - 1 do
    begin
      UserInfo := PUINEntry(SrvContactList.Items[i])^;
      if UserInfo.CType = U_VISIBLE_LIST then
        ICQClient1.VisibleList.Add(IntToStr(UserInfo.UIN))
      else if UserInfo.CType = U_INVISIBLE_LIST then
        ICQClient1.InvisibleList.Add(IntToStr(UserInfo.UIN))
      else if UserInfo.CType = U_NORMAL then
      begin
        if ICQClient1.AddContact(UserInfo.UIN) then
        begin
          ListItem := ListView1.Items.Add;
          ListItem.ImageIndex := ICON_OFFLINE;
          ListItem.Caption := IntToStr(UserInfo.UIN);
        end;
      end;
    end;
  ICQClient1.DestroyUINList(SrvContactList);
end;
Admin: Пользуемся тегами!

но все компилируется но при запросе контакт листа появляется List index out of bounds (9) помогите исправить, я вас в разработчики запишу
__________________
Стекл как трезвышко

Последний раз редактировалось Admin, 06.05.2009 в 22:41.
Ответить с цитированием
  #3  
Старый 06.05.2009, 23:11
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

попробуй для начала так:
Код:
for i := SrvContactList.Count - 1 downto 0 do
Ответить с цитированием
  #4  
Старый 07.05.2009, 16:50
Аватар для zorazo
zorazo zorazo вне форума
Прохожий
 
Регистрация: 05.05.2009
Сообщения: 18
Репутация: 10
По умолчанию

попробовал как ты сказал, все равно! тоже самое
мне люди сказали что ошибка где-то в
UserInfo := PUINEntry(SrvContactList.Items[i])^;
только где я не могу понять
__________________
Стекл как трезвышко
Ответить с цитированием
  #5  
Старый 07.05.2009, 19:56
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

откопал на другом форуме:
Код:
UserInfo:=PUINEntry(SrvContact List.Items[i])^;
if UserInfo.Nick = '' then UserInfo.Nick:='No Name';
Вот ссылка
http://forum.asechka.ru/showthread.php?page=2&t=97186
Ответить с цитированием
  #6  
Старый 07.05.2009, 20:14
Аватар для zorazo
zorazo zorazo вне форума
Прохожий
 
Регистрация: 05.05.2009
Сообщения: 18
Репутация: 10
По умолчанию

все сделал, но все равно(((
__________________
Стекл как трезвышко
Ответить с цитированием
  #7  
Старый 07.05.2009, 20:26
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Попробуйте перед передачей значения в PUINEntry()
проверить значение SrvContactList.Items[i] на nil.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #8  
Старый 07.05.2009, 23:02
Аватар для Dronik
Dronik Dronik вне форума
Прохожий
 
Регистрация: 09.08.2008
Сообщения: 5
Репутация: 10
По умолчанию

Код:
var
    FullReloadContactList: Boolean;
.....

procedure TuimMain.ICQClient1ServerListRecv(Sender: TObject; SrvContactList: TList);
var
  i : LongInt;
  UserInfo: TUINEntry;
  UINNickItem : PUINNickItem;
begin
  if FullReloadContactList then
    begin
      FullReloadContactList := False;
      uimCList.Clear;
      UINNickList.Clear;
    end;
  if SrvContactList.Count > 0 then
    for i := 0 to SrvContactList.Count - 1 do
      begin
        UserInfo := PUINEntry(SrvContactList.Items[i])^;
          if UserInfo.CType =  BUDDY_NORMAL then
                begin
                      uimCList.AddItem(UserInfo.Nick, Self);
                      GetMem(UINNickItem, SizeOf(UINNickItem^));
                      UINNickItem^.Nick := UserInfo.Nick;
                      UINNickList.Add(UINNickItem);
                 end;
          end;
      end;
  UIM.DestroyUINList(SrvContactList);
end;

попробуй так, у меня этот код работает
__________________
Я не волшебник - Я только учусь
http://www.kolobok.us/smiles/other/spam_light.gif

Последний раз редактировалось Dronik, 07.05.2009 в 23:52.
Ответить с цитированием
  #9  
Старый 08.05.2009, 13:46
Аватар для zorazo
zorazo zorazo вне форума
Прохожий
 
Регистрация: 05.05.2009
Сообщения: 18
Репутация: 10
По умолчанию

а ты можешь смотря по моему листингу, написать на своем, а то чтото я заморочился
__________________
Стекл как трезвышко
Ответить с цитированием
  #10  
Старый 08.05.2009, 16:40
Аватар для Dronik
Dronik Dronik вне форума
Прохожий
 
Регистрация: 09.08.2008
Сообщения: 5
Репутация: 10
По умолчанию

я так понимаю ты хочешь сделать загрузку всех(видимый, невидимый, нормальный и игнор) КЛ?
__________________
Я не волшебник - Я только учусь
http://www.kolobok.us/smiles/other/spam_light.gif
Ответить с цитированием
  #11  
Старый 08.05.2009, 17:19
Аватар для zorazo
zorazo zorazo вне форума
Прохожий
 
Регистрация: 05.05.2009
Сообщения: 18
Репутация: 10
По умолчанию

да, именно так
__________________
Стекл как трезвышко
Ответить с цитированием
  #12  
Старый 08.05.2009, 19:26
Аватар для zorazo
zorazo zorazo вне форума
Прохожий
 
Регистрация: 05.05.2009
Сообщения: 18
Репутация: 10
По умолчанию

народ, заходите на http://ric-icq-ru.tut.su/forum/ там и обсудем!
__________________
Стекл как трезвышко
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:54.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025