Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.08.2011, 17:37
MR.HAKER MR.HAKER вне форума
Прохожий
 
Регистрация: 15.08.2011
Сообщения: 23
Репутация: -1316
Восклицание 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  
Старый 15.08.2011, 18:07
MR.HAKER MR.HAKER вне форума
Прохожий
 
Регистрация: 15.08.2011
Сообщения: 23
Репутация: -1316
По умолчанию

Также подскажите как можно создать базу паролей и логинов через фтп у себя на компьютере таким образом чтоб когда пароль и лонгин вводить тебя пускало в программу только если данные верны...
Ответить с цитированием
  #3  
Старый 15.08.2011, 19:22
Rat Rat вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 391
Репутация: 6078
По умолчанию

Цитата:
Рууки проде не кривые
Я бы так не сказал.
Ответить с цитированием
  #4  
Старый 15.08.2011, 19:24
MR.HAKER MR.HAKER вне форума
Прохожий
 
Регистрация: 15.08.2011
Сообщения: 23
Репутация: -1316
По умолчанию харе

хватит там уже про руки))) Лутше помог бы....
Ответить с цитированием
  #5  
Старый 18.08.2011, 00:44
MR.HAKER MR.HAKER вне форума
Прохожий
 
Регистрация: 15.08.2011
Сообщения: 23
Репутация: -1316
По умолчанию Вот исходник V0.0.0.21

Вылаживаю архив с открытым кодом и с скомпилировавшим вариантом приложения.Ссылка Кто может помогите! Та же проблема
Ответить с цитированием
  #6  
Старый 18.08.2011, 01:40
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

а сервер-то у тебя "поднят"? А то при Timeout=0 ты долго будешь подключения ждать.

и еще - скачай и поставь Indy 10 - там много багов пофикшено по сравнению с 9кой.
Ответить с цитированием
  #7  
Старый 18.08.2011, 03:46
MR.HAKER MR.HAKER вне форума
Прохожий
 
Регистрация: 15.08.2011
Сообщения: 23
Репутация: -1316
По умолчанию

я сейчас перезалил версию 0~24 я добился подключения коннектит выводит данные с сервера но не посылает сообщения с клиента хелп!
Ссылка Да поднят Я инди 10 не могу втыкнуть
Не умею не давно начал учить этот язык где не смотрел как приткнуть не выходит
Ответить с цитированием
  #8  
Старый 18.08.2011, 04:33
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

OFF: Вам бы русский язык подучить. Или хотя бы расположение букв на клавиатуре, чтоб по ним не промахиваться. Да и знаки препинания не помешает на клавиатуре найти...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #9  
Старый 18.08.2011, 11:52
MR.HAKER MR.HAKER вне форума
Прохожий
 
Регистрация: 15.08.2011
Сообщения: 23
Репутация: -1316
По умолчанию

В таком случае, люди подскажите здесь мне помогут? Или будут исправлять орфографические ошибки ? Лучше помогите ......
Ответить с цитированием
  #10  
Старый 18.08.2011, 18:34
MR.HAKER MR.HAKER вне форума
Прохожий
 
Регистрация: 15.08.2011
Сообщения: 23
Репутация: -1316
Восклицание Исходник версии 0~25

Вот новый исходник, старую проблему соединения я решил. Теперь проблема с отсылкой сообщения на сервер, через KeyPreseed просто ничего не происходит...
Ссылка
Помогите по скорее, кто чем может!!!
Ответить с цитированием
  #11  
Старый 18.08.2011, 21:32
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Дык, что бы помочь, нужно сначала вопрос понять. А, при оЧеПятках и отсутсвии знаков припинания, это очень тяжело.

Да, посылать сообщения в Indy надо через IOHandler.
Ответить с цитированием
  #12  
Старый 20.08.2011, 13:26
MR.HAKER MR.HAKER вне форума
Прохожий
 
Регистрация: 15.08.2011
Сообщения: 23
Репутация: -1316
Восклицание Та! с теми проблемами решено

Вот теперь новая головоломка...
По принципу файл должен открываться, считывать содержание, и при условии что сумма больше 0,25 он должен выполнять следующее:
money:=0.25 - money;
и сохранять в тотже файл + обновить label.capition и записать туда сумму money . Но при компиляции ругаеться на этот код
Код:
label.capiton:=IntToStr(money);
[Error] Unit7.pas(115): There is no overloaded version of 'IntToStr' that can be called with these arguments
Полный код страницы
Код:
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  
Старый 20.08.2011, 15:44
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Из сообщения непонятно чтоли?
Ф-я принимает параметр типа integer.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #14  
Старый 20.08.2011, 15:56
MR.HAKER MR.HAKER вне форума
Прохожий
 
Регистрация: 15.08.2011
Сообщения: 23
Репутация: -1316
По умолчанию

а без int to str uncomplitable types real and string
Ответить с цитированием
  #15  
Старый 20.08.2011, 16:35
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Е**ный стыд.
У тебя переменная money типа real, а ты ее суешь в интеджер_ту_стринг, есс-но у тебя будет ошибка о несоответствии типов с ф-ей и без нее. Ты приди в банк и суй кассиру пачку туалетной бумаги, она тебя так же пошлет.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 20.08.2011 в 16:53.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:36.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter