![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Unconnected |
![]()
Сообщение
#21
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
..при ближайшем знакомстве с компонентом TIcqClient я начал понимать, что местами он ну очень неудобный... Т.е. в него вложено много всего того, что мне вообще не нужно, а это не лучшим образом сказывается на производительности. Есть ли возможность работать с протоколом напрямую, без всяких компонентов, т.е. просто кодом делать то, что нужно? Протокол ICQ закрытый, насколько я знаю..
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#22
|
Гость ![]() |
Цитата Протокол ICQ закрытый, насколько я знаю.. Неправда. С 5-го марта 2008 OSCAR открытый (но не свободный !!!) протокол: Wiki: OSCAR (протокол), там же ссылки на спецификацию... |
Unconnected |
![]()
Сообщение
#23
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
http://dev.aol.com/aim/oscar/
Вот это да.. Мне это только года через 4 читать)) Лучше из компонента всё ненужное попробую выбросить.. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Unconnected |
![]()
Сообщение
#24
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
В TIcqclient есть процедура смены информации номера. Входные параметры на рисунке:
ScreenShot Так вот, на скриншоте видно, что параметр Gender, например (это пол, и некоторые другие) типа byte или word.. Какая система обозначений применяется? Сообщение отредактировано: Unconnected - 10.03.2009 21:59 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#25
|
Гость ![]() |
Ну, с Gender-ом все просто:
FGender := GetInt(Pkt, 1); // The user's gender. 1 = female, 2 = male, 0 = not specified., с TimeZone чуть сложнее: Цитата Чтобы сконвертировать TimeZone в нормальное представление(типа +2:00), вы должны сделать следующее: , а страны представляются вот так:var const, где Value представляет название страны, для которой телефонный код хранится в Ident. К примеру, 1 = USA, 7 = Russia, 711 = Uzbekistan, и так далее... Для конвертации кода страны в название есть функция function CountryToStr(Value: Word): String;, кстати... |
Unconnected |
![]()
Сообщение
#26
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Про TimeZone не совсем понял.. Нормальное представление - это +2:00, к примеру, а входной параметр имеет тип byte, он же такую запись не примет, правильно..?
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#27
|
Гость ![]() |
Правильно. Именно поэтому чтобы ПРЕОБРАЗОВАТЬ значение TimeZone к привычному, надо произвести вышеописанную процедуру.
|
Unconnected |
![]()
Сообщение
#28
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Ясно. Ещё про страны: вот, допустим, выбор страны у меня в combobox'е, обязательно руками вбивать все 242 страны или есть какая-то структура специальная для выбора?(обленился я совсем
![]() Цитата const Countries: array[0..242] of record Ident: Word; Value: String end = ... Здесь после равно идёт перечисление стран, так ведь? Всё, я понял, это в icqworks.pas все страны и вбиты ![]() Сообщение отредактировано: Unconnected - 11.03.2009 21:30 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Unconnected |
![]()
Сообщение
#29
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
volvo, возможно, я не прав, но тебе не кажется, что это
Цитата Чтобы сконвертировать TimeZone в нормальное представление(типа +2:00), вы должны сделать следующее: var S: String; // ... S := IntToStr(- ShortInt(TimeZone) div 2) + ':' + IntToStr(Abs(ShortInt(TimeZone) mod 2 * 30)); преобразует целочисленное значение (которое нужно в качестве входного параметра процедуре) в запись +2:00? А нужно-то наоборот. Или я опять что-то не понял.. Сообщение отредактировано: Unconnected - 12.03.2009 19:32 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#30
|
Гость ![]() |
Ну, если я не ошибся, то обратное преобразование (из th и tm в переменную типа byte) будет таким:
b := byte(-2 * shortint(th)) + (tm div 30) * (1 - 2 * (byte(th >= 0))); Только учти один особый случай... Поскольку 0 знака не имеет, то время -0:30 должно кодироваться при th = 0 и tm = -30. |
Unconnected |
![]()
Сообщение
#31
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Мда, вот неудача.. Несколько дней писал интерфейс, а SetSelfInfo возьми да и не заработай..
![]() Код form1.ICQClient1.UIN:=*******; form1.icqclient1.Password:='********'; form1.icqclient1.Login; form1.ICQClient1.SetSelfInfo(nickname,firstname,lastname,email,city,state,phone,fax, & nbsp;street,cellular,zip,country,timezone,publish,age,gender,homepage,birthyear, birthmonth,birthday, lang1,lang2,lang3,about,autoriz,web); form1.icqclient1.logoff; Логин проходит нормально. После этого если вбить номер в поиске QIP, например, то информация та же самая.. Сообщение отредактировано: Unconnected - 13.03.2009 21:16 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#32
|
Гость ![]() |
SetSelfInfo - это что? Нет такого метода в TICQClient, есть SetSelfInfoGeneral, есть SetSelfInfoMore...
|
Unconnected |
![]()
Сообщение
#33
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
А у меня есть
![]() http://xmages.net/out.php/i142119_.JPG Попробую-ка по частям инфо вбивать... Добавлено через 17 мин. setselfinfogeneral(...); - тоже не меняет.. ![]() Сообщение отредактировано: Unconnected - 13.03.2009 21:59 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Unconnected |
![]()
Сообщение
#34
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
А ларчик просто открывался.. После логина нужно было ждать около 5 секунд и тогда уже менять информацию..
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Unconnected |
![]()
Сообщение
#35
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Ещё одна небольшая неувязка - индекс, передаю в процедуру '123', например, а в номере меняется на '842072068'..
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
![]() |
Текстовая версия | 11.07.2025 15:04 |