![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Народ помогите, я пишу свой icq клиент, мне нужно чтобы моя ася загружала контакт-лист
Стекл как трезвышко ![]() |
#2
|
||||
|
||||
![]() вот листинг:
Код:
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; но все компилируется но при запросе контакт листа появляется List index out of bounds (9) помогите исправить, я вас в разработчики запишу Стекл как трезвышко ![]() Последний раз редактировалось Admin, 06.05.2009 в 22:41. |
#3
|
||||
|
||||
![]() попробуй для начала так:
Код:
for i := SrvContactList.Count - 1 downto 0 do |
#4
|
||||
|
||||
![]() попробовал как ты сказал, все равно! тоже самое
мне люди сказали что ошибка где-то в UserInfo := PUINEntry(SrvContactList.Items[i])^; только где я не могу понять Стекл как трезвышко ![]() |
#5
|
||||
|
||||
![]() откопал на другом форуме:
Код:
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
|
||||
|
||||
![]() все сделал, но все равно(((
Стекл как трезвышко ![]() |
#7
|
||||
|
||||
![]() Попробуйте перед передачей значения в PUINEntry()
проверить значение SrvContactList.Items[i] на nil. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#8
|
||||
|
||||
![]() Код:
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
|
||||
|
||||
![]() а ты можешь смотря по моему листингу, написать на своем, а то чтото я заморочился
Стекл как трезвышко ![]() |
#10
|
||||
|
||||
![]() я так понимаю ты хочешь сделать загрузку всех(видимый, невидимый, нормальный и игнор) КЛ?
Я не волшебник - Я только учусь http://www.kolobok.us/smiles/other/spam_light.gif |
#11
|
||||
|
||||
![]() да, именно так
Стекл как трезвышко ![]() |
#12
|
||||
|
||||
![]() народ, заходите на http://ric-icq-ru.tut.su/forum/ там и обсудем!
Стекл как трезвышко ![]() |