ActiveIRC Component

Представляє він собою звичайний безкоштовний ActiveX компонент. У постачання
компонента входить файл "ActiveIRC installer.exe" плюс документація. За великим
рахунком, ніякої документації до нього і не потрібно – все гранично ясно, але для
інтересу можна і ознайомитися – там є опис декількох корисних функцій.

Після запуску означеного exe-файлу тут же з'явиться повідомлення … про вдалу
установці. Але радіти ще рано, тому що якщо ти запустиш Delphi і відкриєш в
компонентах вкладку "ActiveX", то, зрозуміло, нічого не знайдеш. Чому? Так
тому, що розбалувалися Ви, шановний, і звикли, що інсталятор робить все
за Вас. Насправді ж він лише переносить свій OCX файл у WINDOWSSYSTEM, а
реєструвати його доведеться вже ручками: component -> import ActiveX control
-> ActiveIrc ActiveX -> вибрати файл Activeirc.ocx з системного каталогу
і інсталювати його. Тепер він з'явиться у вкладці ActiveX, і його можна сміливо
класти на форму.

Create form

Наша форма буде досить простий, складається з наступних елементів: 4
компонента Edit, 4 Кнопки, 3 Label, 1 Memo і власне сам ActiveIRC. Результат
форми дивись на рис.1.

А тепер проставимо назви:


Label "и 1-3 будуть супроводжувати відповідні Edit" и. Також можеш створити
Edit "и для введення інших даних, які можуть тобі знадобитися. Для них
існують властивості Email, FullName і Ident (в останньому зазвичай прописано
“localhost”).

У кожної кнопки є свій caption. Він відповідає призначенню кожної кнопки.
Наприклад, Button1 – CONNECT, відповідає за з'єднання з сервером. JOIN – зайти на
канал.

Загалом-то, можна обійтися і без батонів – замість них написати обробник
OnKeyDown для Edit4 (в ньому ми будемо писати наші повідомлення). Наприклад, обробка
команди "/ JOIN # LOVE" зведеться до видалення з рядка всі символи від "/" до "#"
та запуску процедури: ActiveIrc1.Join ("# LOVE");.

Коннект і спілкування


Для конекту з сервером та передачі даних користувача ми з тобою зліпили
кнопку "CONNECT". Давай подивимося на її подія OnClick:

ActiveIrc1.server:= edit1.Text;
ActiveIrc1.port:= strtoint (edit2.text);
ActiveIrc1.nick:= edit3.Text;
ActiveIrc1.Connect;

Правда, тут я прописую не всі властивості, а тільки ті, без яких важко
обійтися. Далі викликом методу Connect запускаємо процес з'єднання.

Як ти, напевно, здогадався, головним компонентом у нас буде Memo1. Саме в
ньому будуть відображатися всі повідомлення. А оскільки кожне повідомлення – це вже
подія (я маю на увазі Event), давай створимо необхідні обробники:

OnConsole – як тільки ти отримуєш чергову порцію даних, наприклад,
службова інфа від сервера, активізується цю подію. Єдине, що воно
може дати – це змінну text, що містить у собі саме повідомлення, тому
пиши: memo1.lines.add (text);.

OnIRCReady – коли IRC-сервак буде готовий приймати твої команди і властивість
IsConnected прийме значення TRUE, викликається цей Event. У його обробник
достатньо написати, скажімо, повідомлення про це: Memo1.Lines.Add ("Готовий до
праці і оборони !");.

OnMessage – повідомлення, відправлене будь-яким користувачем на каналі, активує
цей Event. Природно, що й повертає він нам: channel – ім'я каналу, user –
нік юзера, text – власне саме повідомлення. У його обробник я написав:
memo1.Lines.Add ("("+ channel +")"+ user + ">" + text);. Зауваж, що в цьому випадку до
кожній Мессага приплюсовуватиметься ім'я каналу, з якого вона відправлена. Це
необхідно, якщо користувач розмовляє на декількох каналах, а при цьому для
чату використовується всього одне вікно. Ось приклад такого повідомлення:

(# Xakep) Petrovis> Так, наш адмін теж цим страждає:).

memo1.Lines.Add ("Прийшов товариш" + user + "на канал:" + channel +"!");

Ніщо не заважає тобі зробити автоматичне привітання в дусі:

if User = “Petya”
then ActiveIRC.Say (Edit5.text, "Привіт, шановний! Давно чекав тебе :)");


Події вивчили, тепер перейдемо до самого кодінгу. Почнемо з OnClick для
кнопки "JOIN": ActiveIrc1.Join (edit5.Text), а в OnClick для "LEAVE",
відповідно – ActiveIrc1.Leave;. Щоб надіслати повідомлення на канал або особисто
юзеру, нам знадобиться кнопка "Сказати". Рядок
ActiveIrc1.Say (edit5.Text, edit4.Text); дозволить відправити на канал повідомлення з
Edit5 (Edit4 – це ім'я каналу), але якщо першим аргументом буде прописаний чийсь
нік, то у цього користувача відкриється вікно з приват-повідомленням.

Корисні функції


Крім тієї основи, що я описав, у цього компонента присутні ще
кілька цікавих функцій:


И вновь продолжается бой!


Що ж, тепер у тебе в руках є все необхідне. Залишилося тільки напружити
свою фантазію, зробити гарний інтерфейс і викласти отриманий результат в інет
для загального скачування. Не будь жадібним – викладай все безкоштовно, а за
можливості давай і Сорс. Так у тебе більше шансів бути поміченим. Раптом ти
задвінешь mIRC своїм супернавороченним клієнтом:).

PS І як завжди – готовий варіант програми разом з Сорс бери з
www.xakep.ru або з нашого компакт-диска. Удачи!

Альтернативний варіант


Як я вже говорив, цей компонент далеко не єдиний. Їх досить багато,
правда, практично всі вони погані. Але один з них все-таки варто виділити –
компонент XiRC від простого мексиканського хлопця Martin Bleakley. Справа в тому, що
цей пан вибрав вірний шлях – він програми свій компонент з використанням
Indy 8.0. Це його перший компонент і до того ж freeware.

Качай його з http://www.torry.net/vcl/internet/irc/mbxirc.zip
, Тому що власний сайт і мейл цього пана накрилися ще півтора року тому,
і всі мої спроби сказати йому пару ласкавих не увінчалися успіхом.

До компоненту додаються 2 деми, причому друга – практично готовий
IRC-клієнт. Але врахуй, що працювати він у тебе не буде. Просто тому, що Мартін
забув сказати, що для його оформлення він використовував компоненти FlatStyle (їх я
теж поклав на диск, а загалом їх можна качати з
www.torry.net / vcl / packs / interfacemiddle / flatstyl.zip). Ця колекція – просто
красиві аналоги дельфійських компонентів, але їх відсутність загрожує тобі неабиякими
проблемами з запуском його деми.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*