JustPaste.it

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop


#include "Unit4.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm4 *Form4;
//---------------------------------------------------------------------------
__fastcall TForm4::TForm4(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//------------------------------------------------ ---------------------------
// Connect to the specified IRC SERVER
//------------------------------------------------ ---------------------------
void __fastcall TForm4::Button1Click(TObject *Sender)
{
// If a connection is active, it has to close before establishing a new
// Connect to Server

char umod[2];
umod[0] = 'x';
umod[1] = 'i';
IdIRC1->Host = "irc.irc-hispano.org";
IdIRC1->Port = 6667;
IdIRC1->Username = "jj";
IdIRC1->RealName = "jack";

 

IdIRC1->Connect();
IdIRC1->IOHandler->DefStringEncoding = IndyTextEncoding_UTF8();
IdIRC1->Nickname = "JACKKKKK";
if(IdIRC1->Connected() == true) ShowMessage("IRC CONECTADO");
CanalActual = "#amistad";
IdIRC1->Join(CanalActual);

 

}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//------------------------------------------------ ---------------------------
// HIDE FORM (BUT KEEPING CHAT OPEN)
//------------------------------------------------ ---------------------------
void __fastcall TForm4::Button3Click(TObject *Sender)
{
Form4->Hide(); // Exit Chat Window
}
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
//------------------------------------------------ ---------------------------
// Stop or disconnect the connection
//------------------------------------------------ ---------------------------
void __fastcall TForm4::Button2Click(TObject *Sender)
{
Button1->Enabled = true; //Button Connect
IdIRC1->Disconnect("QUIT");
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//------------------------------------------------ ---------------------------
// When connecting
//------------------------------------------------ ---------------------------
void __fastcall TForm4::IdTCPClient1Connected(TObject *Sender)
{
StatusBar1->Panels->Items[0]->Text = "Connected to Social Game Server";
Button1->Enabled = false;

}
//---------------------------------------------------------------------------
// When user send message to chat room (CanalActual is CurrentChannel)
//---------------------------------------------------------------------------
void __fastcall TForm4::Button4Click(TObject *Sender)
{
IdIRC1->Say(CanalActual, Edit2->Text);
ListBox1->Items->Add(IdIRC1->Nickname + ": " + Edit2->Text);
}
//---------------------------------------------------------------------------

 

void __fastcall TForm4::IdIRC1Join(TIdContext *ASender, const UnicodeString ANickname,
const UnicodeString AHost, const UnicodeString AChannel)

{
if(AChannel == CanalActual)
{
ListBox1->Items->Add("Ha entrado el usuario " + ANickname);

if (Usuarios->Items->IndexOf(ANickname) == -1) Usuarios->Items->Add(ANickname);
}
}
//---------------------------------------------------------------------------

void __fastcall TForm4::Timer1Timer(TObject *Sender)
{
//This timmer is setup on 120.000 miliseconds to keep ping process
IdIRC1->Ping(IdIRC1->Host);
}
//---------------------------------------------------------------------------

void __fastcall TForm4::IdIRC1Notice(TIdContext *ASender, const UnicodeString ANickname,
const UnicodeString AHost, const UnicodeString ATarget,
const UnicodeString ANotice)
{
ListBox1->Items->Add(ANickname + ": " + ANotice);

}
//---------------------------------------------------------------------------


void __fastcall TForm4::IdIRC1NicknamesListReceived(TIdContext *ASender, const UnicodeString AChannel,
TStrings *ANicknameList)
{

Usuarios->Items->Clear();
for (int i = 0; i < ANicknameList->Count; ++i)
{

Usuarios->Items->Add(ANicknameList->Strings[i]);

}

}
//---------------------------------------------------------------------------

void __fastcall TForm4::IdIRC1PrivateMessage(TIdContext *ASender, const UnicodeString ANickname,
const UnicodeString AHost, const UnicodeString ATarget,
const UnicodeString AMessage)
{
ListBox1->Items->Add(ANickname + ": " + AMessage);
}
//---------------------------------------------------------------------------

void __fastcall TForm4::IdIRC1Kick(TIdContext *ASender, const UnicodeString ANickname,
const UnicodeString AHost, const UnicodeString AChannel,
const UnicodeString ATarget, const UnicodeString AReason)

{
if(AChannel == CanalActual)
{
ListBox1->Items->Add("El usuario " + ANickname + " ha expulsado a usuario " + ATarget );
int iUsuario = Usuarios->Items->IndexOf(ATarget);

if(iUsuario > -1) Usuarios->Items->Delete(iUsuario);
}
}
//---------------------------------------------------------------------------

void __fastcall TForm4::IdIRC1NicknameChange(TIdContext *ASender, const UnicodeString AOldNickname,
const UnicodeString AHost, const UnicodeString ANewNickname)

{
ListBox1->Items->Add("El usuario " + AOldNickname + " ahora se llama " + ANewNickname);
int iUsuario = Usuarios->Items->IndexOf(AOldNickname);

UnicodeString Usua;

IdIRC1->ListChannelNicknames(CanalActual, Usua);
}
//---------------------------------------------------------------------------

void __fastcall TForm4::Edit2KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)

{
//On Editbox of user message written.....sends to room where ENTER is pressed
if(Key == VK_RETURN)
{
Button4Click(this);
}
}
//---------------------------------------------------------------------------