IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Массив компонент
Unconnected
сообщение 17.02.2009 14:12
Сообщение #21


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


..при ближайшем знакомстве с компонентом TIcqClient я начал понимать, что местами он ну очень неудобный... Т.е. в него вложено много всего того, что мне вообще не нужно, а это не лучшим образом сказывается на производительности. Есть ли возможность работать с протоколом напрямую, без всяких компонентов, т.е. просто кодом делать то, что нужно? Протокол ICQ закрытый, насколько я знаю..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.02.2009 15:17
Сообщение #22


Гость






Цитата
Протокол ICQ закрытый, насколько я знаю..
Неправда. С 5-го марта 2008 OSCAR открытый (но не свободный !!!) протокол: Wiki: OSCAR (протокол), там же ссылки на спецификацию...
 К началу страницы 
+ Ответить 
Unconnected
сообщение 17.02.2009 15:36
Сообщение #23


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


http://dev.aol.com/aim/oscar/

Вот это да.. Мне это только года через 4 читать)) Лучше из компонента всё ненужное попробую выбросить..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 10.03.2009 21:56
Сообщение #24


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


В TIcqclient есть процедура смены информации номера. Входные параметры на рисунке:

ScreenShot

Так вот, на скриншоте видно, что параметр Gender, например (это пол, и некоторые другие) типа byte или word.. Какая система обозначений применяется?

Сообщение отредактировано: Unconnected - 10.03.2009 21:59


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.03.2009 22:33
Сообщение #25


Гость






Ну, с Gender-ом все просто:
  FGender := GetInt(Pkt, 1); // The user's gender. 1 = female, 2 = male, 0 = not specified.
, с TimeZone чуть сложнее:
Цитата
Чтобы сконвертировать TimeZone в нормальное представление(типа +2:00), вы должны сделать следующее:
var
S: String;
// ...
S := IntToStr(- ShortInt(TimeZone) div 2) + ':' + IntToStr(Abs(ShortInt(TimeZone) mod 2 * 30));
, а страны представляются вот так:
const
Countries: array[0..242] of record Ident: Word; Value: String end = ...
, где Value представляет название страны, для которой телефонный код хранится в Ident. К примеру, 1 = USA, 7 = Russia, 711 = Uzbekistan, и так далее... Для конвертации кода страны в название есть функция
function CountryToStr(Value: Word): String;
, кстати...
 К началу страницы 
+ Ответить 
Unconnected
сообщение 11.03.2009 14:28
Сообщение #26


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Про TimeZone не совсем понял.. Нормальное представление - это +2:00, к примеру, а входной параметр имеет тип byte, он же такую запись не примет, правильно..?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.03.2009 14:32
Сообщение #27


Гость






Правильно. Именно поэтому чтобы ПРЕОБРАЗОВАТЬ значение TimeZone к привычному, надо произвести вышеописанную процедуру.
 К началу страницы 
+ Ответить 
Unconnected
сообщение 11.03.2009 21:15
Сообщение #28


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Ясно. Ещё про страны: вот, допустим, выбор страны у меня в combobox'е, обязательно руками вбивать все 242 страны или есть какая-то структура специальная для выбора?(обленился я совсем cool.gif ) Есть же ComboBox для шрифтов, где они уже заложены в компонент..

Цитата
const
Countries: array[0..242] of record Ident: Word; Value: String end = ...


Здесь после равно идёт перечисление стран, так ведь?

Всё, я понял, это в icqworks.pas все страны и вбитыsmile.gif

Сообщение отредактировано: Unconnected - 11.03.2009 21:30


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 12.03.2009 19:31
Сообщение #29


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


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


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 12.03.2009 21:01
Сообщение #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
сообщение 13.03.2009 21:10
Сообщение #31


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Мда, вот неудача.. Несколько дней писал интерфейс, а SetSelfInfo возьми да и не заработай.. wacko.gif

Код
  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


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.03.2009 21:36
Сообщение #32


Гость






SetSelfInfo - это что? Нет такого метода в TICQClient, есть SetSelfInfoGeneral, есть SetSelfInfoMore...
 К началу страницы 
+ Ответить 
Unconnected
сообщение 13.03.2009 21:54
Сообщение #33


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


А у меня есть smile.gif TIcqClient 1.34

http://xmages.net/out.php/i142119_.JPG

Попробую-ка по частям инфо вбивать...

Добавлено через 17 мин.
setselfinfogeneral(...); - тоже не меняет.. wacko.gif

Сообщение отредактировано: Unconnected - 13.03.2009 21:59


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 14.03.2009 22:08
Сообщение #34


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


А ларчик просто открывался.. После логина нужно было ждать около 5 секунд и тогда уже менять информацию..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 19.03.2009 15:58
Сообщение #35


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Ещё одна небольшая неувязка - индекс, передаю в процедуру '123', например, а в номере меняется на '842072068'..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 11.07.2025 15:04
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"