|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Программа для пинга Привет. Я совсем у начинающий. Помогите решить 2 проблемы с программой. Листинг такой: Код: procedure TForm1.IdIcmpClient1Reply(ASender: TComponent; const AReplyStatus: TReplyStatus); begin ListBox1.Items.Insert (0,'Reply:'+IntToStr (AReplyStatus.MsRoundTripTime)); ListBox1.Items.Delete(5); end; procedure TForm1.Button1Click(Sender: TObject); begin Self.IdIcmpClient1.Host:=Edit1.Text; Self.IdIcmpClient1.ReceiveTimeout:=5000; Self.IdIcmpClient1.Ping; end; end. После нажатия кнопки пакет отправляется всего один раз. Как реализовать постоянную отправку пакетов хосту? И второй момент. Программа запускается в w7 только в режиме совместимости с ХР. Как избавиться от этого? Заранее спасибо! Прошу сильно не критиковать, я только начал изучать программирование. Последний раз редактировалось Admin, 07.01.2013 в 14:27. | 
| 
			 
			#2  
			
			
			
			
		 | ||||
| 
 | ||||
|   1. использовать цикл 2. добавить манифест Manifest.rc в проект: Manifest.rc Цитата: 
 Код HTML: 
 | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   Ну вот что получается, результат записывается в ListBox только после того как выполняется цикл. Не могу додуматься как сделать так чтоб результат по каждому пакету записывался во время цикла, а не после него. Код: procedure TForm1.IdIcmpClient1Reply(ASender: TComponent; const AReplyStatus: TReplyStatus); begin ListBox1.Items.Insert (0,'Reply:'+IntToStr (AReplyStatus.MsRoundTripTime)); end; procedure TForm1.Button1Click(Sender: TObject); begin x:=1; while x < 15 do begin Self.IdIcmpClient1.Host:=Edit1.Text; Self.IdIcmpClient1.ReceiveTimeout:=5000; Self.IdIcmpClient1.Ping; x:=x+1; end; end; end. Последний раз редактировалось Admin, 07.01.2013 в 14:28. | 
| 
			 
			#4  
			
			
			
			
		 | ||||
| 
 | ||||
|   Код: procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  for i:=1 to 5 do
  begin
    ListBox1.Items.Add('i='+IntToStr(i));
    IdIcmpClient1.Host:='www.delphisources.ru';
    IdIcmpClient1.ReceiveTimeout:=5000;
    IdIcmpClient1.Ping;
  end;
end;
procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
begin
  ListBox1.Items.Add('Reply:'+IntToStr(AReplyStatus.MsRoundTripTime));
  Application.ProcessMessages;
end; | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   Спасибо за помощь! Заработало! |