|
#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. |
#2
|
|||
|
|||
Также подскажите как можно создать базу паролей и логинов через фтп у себя на компьютере таким образом чтоб когда пароль и лонгин вводить тебя пускало в программу только если данные верны...
|
#3
|
|||
|
|||
Цитата:
|
#4
|
|||
|
|||
харе
хватит там уже про руки))) Лутше помог бы....
|
#6
|
|||
|
|||
а сервер-то у тебя "поднят"? А то при Timeout=0 ты долго будешь подключения ждать.
и еще - скачай и поставь Indy 10 - там много багов пофикшено по сравнению с 9кой. |
#7
|
|||
|
|||
я сейчас перезалил версию 0~24 я добился подключения коннектит выводит данные с сервера но не посылает сообщения с клиента хелп!
Ссылка Да поднят Я инди 10 не могу втыкнуть Не умею не давно начал учить этот язык где не смотрел как приткнуть не выходит |
#8
|
||||
|
||||
OFF: Вам бы русский язык подучить. Или хотя бы расположение букв на клавиатуре, чтоб по ним не промахиваться. Да и знаки препинания не помешает на клавиатуре найти...
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#9
|
|||
|
|||
В таком случае, люди подскажите здесь мне помогут? Или будут исправлять орфографические ошибки ? Лучше помогите ......
|
#11
|
|||
|
|||
Дык, что бы помочь, нужно сначала вопрос понять. А, при оЧеПятках и отсутсвии знаков припинания, это очень тяжело.
Да, посылать сообщения в Indy надо через IOHandler. |
#12
|
|||
|
|||
Та! с теми проблемами решено
Вот теперь новая головоломка...
По принципу файл должен открываться, считывать содержание, и при условии что сумма больше 0,25 он должен выполнять следующее: money:=0.25 - money; и сохранять в тотже файл + обновить label.capition и записать туда сумму money . Но при компиляции ругаеться на этот код Код:
label.capiton:=IntToStr(money); Полный код страницы Код:
unit Unit7; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, StdCtrls, ExtCtrls, ZipForge; type TForm7 = class(TForm) btn1: TButton; lbl1: TLabel; wb1: TWebBrowser; btn2: TButton; lbl2: TLabel; tmr1: TTimer; btn3: TButton; zpfrg1: TZipForge; lbl3: TLabel; edt1: TEdit; btn4: TButton; procedure btn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btn2Click(Sender: TObject); procedure btn3Click(Sender: TObject); procedure btn4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form7: TForm7; money:Real; f,money1: TextFile; fName: String[80]; buf: string; implementation uses Unit2; {$R *.dfm} procedure TForm7.btn1Click(Sender: TObject); begin if money > 0.25 then begin money:=0.25 - money; AssignFile(money1,'C:\program files\qmessenger\res\temp\money.db'); Rewrite(money1); Writeln(money1, money); CloseFile(money1); wb1.Show; wb1.Navigate('http://www.mts.com.ua/rus/sendsms.php?sms_message=1&sms_network1=38066&sms_network2=&sms_network3=&sms_phone1=&sms_phone2=&sms_phone3=&sms_mess=QMessenger+%D2%E5%F1%F2%EE%E2%EE%E5+%F1%EE%EE%E1%F9%E5%ED%E8%E5%21&sms_translit=&sms_lang=rus#a'); end; end; procedure TForm7.FormCreate(Sender: TObject); begin fName := ('C:\program files\qmessenger\res\temp\money.db'); AssignFile(f, fName); Reset(f); {$I+} if IOResult <> 0 then begin MessageDlg('Ошибка №1 ' + fName, mtError, [mbOk], 0); exit; end; while not EOF(f) do begin readln(f, buf); lbl3.Caption:=(buf); end; CloseFile(f); try zpfrg1.BaseDir := 'C:\program files\qmessenger\res\temp\'; zpfrg1.FileName:='C:\program files\qmessenger\mn.xlib'; zpfrg1.Password := '4577018'; zpfrg1.OpenArchive; zpfrg1.ExtractFiles('*.*'); finally zpfrg1.CloseArchive; end; wb1.Hide; end; procedure TForm7.btn2Click(Sender: TObject); begin form7.Hide; form2.show; end; procedure TForm7.btn3Click(Sender: TObject); begin if money > 0.25 then begin money:=0.25 - money; AssignFile(money1,'C:\program files\qmessenger\res\temp\money.db'); Rewrite(money1); Writeln(money1, money); CloseFile(money1); wb1.Show; wb1.Navigate('http://www.kyivstar.net/ru/sms/'); end; end; procedure TForm7.btn4Click(Sender: TObject); begin edt1.Text:=IntToStr(money); end; end. Последний раз редактировалось MR.HAKER, 20.08.2011 в 13:29. |
#13
|
||||
|
||||
Из сообщения непонятно чтоли?
Ф-я принимает параметр типа integer. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#14
|
|||
|
|||
а без int to str uncomplitable types real and string
|
#15
|
||||
|
||||
Е**ный стыд.
У тебя переменная money типа real, а ты ее суешь в интеджер_ту_стринг, есс-но у тебя будет ошибка о несоответствии типов с ф-ей и без нее. Ты приди в банк и суй кассиру пачку туалетной бумаги, она тебя так же пошлет. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 20.08.2011 в 16:53. |