ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Организация цикла (Delphi 2007)
  #1  
Старый 17.12.2008, 15:58
Karacь
Новичок
Регистрация: 14.11.2007
Сообщений: 11
Провел на форуме:
16465

Репутация: 0
По умолчанию Организация цикла (Delphi 2007)

Здарово всем кто читает эту тему.
Проблемка такая я пишу на delphi прогу которая раз в n минут посылает письмо с информацией мне на mail. Так как у многих стоит динамический ip. Всё уже сделал код написал но не могу заставить работать таймер... Кто знает помогите...Внизу перевожу лог того что есть...

Код:
 implementation

{$R *.dfm}
function GetLocalIP: String;
const WSVer = $101;
var
wsaData: TWSAData;
P: PHostEnt;
Buf: array [0..127] of Char;
begin
Result := '';
if WSAStartup(WSVer, wsaData) = 0 then begin
if GetHostName(@Buf, 128) = 0 then begin
P := GetHostByName(@Buf);
if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
end;
WSACleanup;
end;
end;



procedure TForm3.Timer1Timer(Sender: TObject);
var
 msg:TIdMessage;
 a:string;
begin
IdSMTP1.AuthType := atDefault;
IdSMTP1.Username:='!!!!!!!!!!!!!';
IdSMTP1.Password:='!!!!!!!!!!!!!!111';
IdSMTP1.Host:='smtp.mail.ru';
IdSMTP1.Connect();
begin
a:=formatdatetime('hh:mm',now);
msg:=TIdMessage.Create(self);
Msg.Subject:='ip';
Msg.Recipients.EMailAddresses:='!!!!!!!!!!!';
Msg.From.Address:='!!!!!!!!!!!!!!;
Msg.Body.Add(a+' время =))э') ;
Msg.Date:=StrToDate('11.11.2008');
if IdSMTP1.Connected=True then  IdSMTP1.Send(Msg);
end;
IdSMTP1.Disconnect;
end;

end.
ps interval таймера 30000 типа 30 секунд..но надо сделать хотя бы 30 минут..у человека нет часто рвётся))
 
Ответить с цитированием

  #2  
Старый 17.12.2008, 16:03
NeXArmAor
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
Провел на форуме:
4612647

Репутация: 368
По умолчанию

А не проще сделать так?

Цитата:
label send;
begin
send:
IdSMTP1.AuthType := atDefault;
IdSMTP1.Username:='!!!!!!!!!!!!!';
IdSMTP1.Password:='!!!!!!!!!!!!!!111';
IdSMTP1.Host:='smtp.mail.ru';
IdSMTP1.Connect();
begin
a:=formatdatetime('hh:mm',now);
msg:=TIdMessage.Create(self);
Msg.Subject:='ip';
Msg.Recipients.EMailAddresses:='!!!!!!!!!!!';
Msg.From.Address:='!!!!!!!!!!!!!!;
Msg.Body.Add(a+' время =))э') ;
Msg.Date:=StrToDate('11.11.2008');
if IdSMTP1.Connected=True then IdSMTP1.Send(Msg);
end;
IdSMTP1.Disconnect;
end;
Sleep(30000)
goto send;
 
Ответить с цитированием

  #3  
Старый 17.12.2008, 16:05
Karacь
Новичок
Регистрация: 14.11.2007
Сообщений: 11
Провел на форуме:
16465

Репутация: 0
По умолчанию

Можеш прокоментировать данный тобой исходник?
чё то я не втыкаю что тут ты юзаеш так как и что это?
label send;
 
Ответить с цитированием

  #4  
Старый 17.12.2008, 16:08
NeXArmAor
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
Провел на форуме:
4612647

Репутация: 368
По умолчанию

Цитата:
Сообщение от Karacь  
Можеш прокоментировать данный тобой исходник?
чё то я не втыкаю что тут ты юзаеш так как и что это?
label send;
Я просто переделал исходный код отсылки E-Mail. Не так сложно сообразить куда надо вставить этот код.
процедуру с таймером вообще убери. на обработчик кнопки поставь этот код
 
Ответить с цитированием

  #5  
Старый 17.12.2008, 16:38
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

если там есть окно оно будет зависать на время Sleep
а вообще при инициализации таймера вставь
timer1.Interval:=30000*60;
 
Ответить с цитированием

  #6  
Старый 17.12.2008, 16:41
NeXArmAor
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
Провел на форуме:
4612647

Репутация: 368
По умолчанию

Если окно будет зависать поставь в исходный код эту строку

Цитата:
Application.ProcessMessages;
 
Ответить с цитированием

  #7  
Старый 17.12.2008, 20:31
Karacь
Новичок
Регистрация: 14.11.2007
Сообщений: 11
Провел на форуме:
16465

Репутация: 0
По умолчанию

Всё хорошо но в это коде когда запускаю вылазиет ошибка.

ps код
Код:
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
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);
end;
IdSMTP1.Disconnect;
end;
Sleep(30000)
goto send;
end;
end;
Где красным там ошибка. На слове sleep он не хочет работать пишет
Код:
[DCC Error] Unit3.pas(72): E2029 Declaration expected but identifier 'Sleep' found
 
Ответить с цитированием

  #8  
Старый 17.12.2008, 20:38
NeXArmAor
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
Провел на форуме:
4612647

Репутация: 368
По умолчанию

Цитата:
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 //этот 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);
end;
IdSMTP1.Disconnect;
end;
Sleep(30000) ;
goto send;
end;
end;
проверь так
 
Ответить с цитированием

  #9  
Старый 17.12.2008, 20:44
Karacь
Новичок
Регистрация: 14.11.2007
Сообщений: 11
Провел на форуме:
16465

Репутация: 0
По умолчанию

Всеравно такая же ошибка..не понимает он что такое sleep
 
Ответить с цитированием

  #10  
Старый 17.12.2008, 20:46
NeXArmAor
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
Провел на форуме:
4612647

Репутация: 368
По умолчанию

Цитата:
Сообщение от Karacь  
Всеравно такая же ошибка..не понимает он что такое sleep
Пздц. Ты хоть библиотеку Windows подключил?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ