|
#1
|
|||
|
|||
QMessenger
Здравствуйте я недавно начал заниматься програмированиев в дельфи вот хотел зделать чач через нитернет ознакомилмя с языком и инди но не получается выполнит ь передачу сообщения Delphi7 Indy9 Рууки проде не кривые
Код:
unit Unit2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, IdTCPConnection, IdTCPClient, IdTelnet, idFTP, Menus, OleCtrls, SHDocVw, IdBaseComponent, IdComponent, jpeg; var s : String; key : Char; i : integer; s1 : String; type TForm2 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; edtMsg: TEdit; Button1: TButton; Label1: TLabel; N5: TMenuItem; Client: TIdTCPClient; edtPort: TEdit; edHost: TEdit; timer1: TTimer; memMsgs: TMemo; lbl1: TLabel; img1: TImage; img2: TImage; procedure SendClick(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure img1Click(Sender: TObject); procedure img2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation uses Unit1, Unit4, Unit3; {$R *.dfm} procedure TForm2.SendClick(Sender: TObject);//Переход begin form2.hide; form1.show; end; procedure TForm2.Button1Click(Sender: TObject); //Посылка сообщения begin if Key = #13 then begin s := edtMsg.Text + #10#13; Key := #0; edtMsg.Text := ''; Client.WriteBuffer(s[1], Length(s)); end; end; procedure TForm2.N2Click(Sender: TObject); //Переходы begin form1.hide; form3.show; end; procedure TForm2.N3Click(Sender: TObject); //Выход из придлжения begin Application.Terminate; end; procedure TForm2.N5Click(Sender: TObject);//Логин + провекска статуса begin if Client.Connected then Client.Disconnect else begin Client.Host := edhost.text; Client.Port := StrToIntDef(edtPort.Text, 8800); edtPort.Text := IntToStr(Client.Port); memMsgs.Lines.Clear; Client.Connect; end; begin if Client.Connected = True then lbl1.Caption := 'Онлайн'; if Client.Connected = False then lbl1.Caption := 'Оффлайн'; if Client.Connected = False then Application.MessageBox('Связь с сервером QMessenger потеряна вам не будут приходть сообщения и вы не можете их писать ', 'Внимание!!!!', MB_OK + MB_ICONSTOP + MB_DEFBUTTON2); end; end; procedure TForm2.timer1Timer(Sender: TObject);//Таймер begin if not Client.Connected then exit; I := 150; if I > 0 then begin SetLength(s, i); Client.ReadBuffer(s[1], i); memMsgs.Lines.add(Copy(s, 1, Length(s) -2)); end; end; procedure TForm2.FormCreate(Sender: TObject);//Статус логина begin Form2.Caption := 'QMessenger - ' + Form1.login.Text + ' logged in!'; memMsgs.Lines.Clear; edtMsg.Text := ''; if not Client.Connected then exit; end; procedure TForm2.img1Click(Sender: TObject);//Смайлы begin edtMsg.Text:= edtMsg.Text + ':)'; end; procedure TForm2.img2Click(Sender: TObject); begin edtMsg.Text:= edtMsg.Text + ':('; end; end. //Конец Код:
Client.Host := edhost.text; Client.Port := StrToIntDef(edtPort.Text, 8800); edtPort.Text := IntToStr(Client.Port); memMsgs.Lines.Clear; Client.Connect; Програма зависает что делать помогите! Последний раз редактировалось lmikle, 18.08.2011 в 01:38. |