![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 вот код 
		
	
		
		
		
		
		
		
			Код: 
	memo1.Clear; Process1.CommandLine:='ping -c 1 8.8.8.8'; Process1.Execute; memo1.lines.LoadFromStream(process1.Output); Label50.Caption:=copy(memo1.Lines[1],47,6); if Label50.caption='' then begin StatusBar1.Panels.Items[0].Text:='$(B'3'd'Q'd'e'c(B $(B'a'`'U'\']'p'i'V'_'Z'q(B: $(B'_'V'd'e(B'; Button3.Enabled:=True; Button4.Enabled:=False; end else begin StatusBar1.Panels.Items[0].Text:='$(B'3'd'Q'd'e'c(B $(B'a'`'U'\']'p'i'V'_'Z'q(B: $(B'V'c'd'n(B'; Button3.Enabled:=false; Button4.Enabled:=true; end; application.ProcessMessages; что в нём не так а то программа виснет и пишет типо не отвечает Последний раз редактировалось sersoftin, 07.06.2012 в 21:40.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 что делает метод Process1.Execute? 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 process1.execute это выполнение команды заданной в process1.comandline 
		
	
		
		
		
		
		
	
		
		
	
	
	я написал само событие которое выполняется по таймеру  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 как реализован этот метод? (отдельный поток или основной поток) 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	F5 на третьей строке, потом F7, F7, F7...  | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Долгосрочные операции в таймере лучше не делать. Тут есть разные подходы: 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	1. Послать сообщение основной программе, затем выполнить нужный код. 2. Выставить флаг и затем ... 3. Стартовать поток и затем он ... 4. и т.д.  | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 то есть как мне убрать тормоза? отделить это в отдельную процедуру 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
  | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 а если мне его выключать нельзя. ну мне нужно что бы постоянно пинговалась сеть. и данные выводились в label  каждую секунду или, хотя бы, полторы 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Выставляй какой-нибудь флаг. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 объясни что такое флаг и как его поставить а то я этого не знаю. хотя может и знаю но не знаю что это флаг 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#11  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Флаг, любая булеановская переменная, которую выставляешь в True/False в зависимости от потребностей задачи. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#12  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 а. понял. только вот у меня там условий нету. просто делается пинг и забивается через мемо в label и не от чего это не зависит и происходить должно всегда. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#13  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 В любом случае, таймер не должен выполнять длительные операции сам, а только давать "отмашку" для их выполнения. Продумай алгоритм как лучше организовать, может воспользоваться "нитью" (Thread). 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#14  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 сейчас попробую 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#15  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Написать свою реализацию клиента протокола ICMP - это именно он и есть, ping. И тогда можно его пустить в отдельном потоке постоянно и просто событием или CallBack'ом выводить информацию в форму. Лично я бы делал так.  |