Potrzebuje komponentu albo przykladu do Pingowania ktory nie bedzie przywieszal programu. Testowalem komponent z ICS Ping , wszystko swietnie tyle ze podczas pingowania zwiesza chwilowo nasz program (przy lostach, braku poalczenia nawet na pare sek) , uzycie Application.ProcessMessage tez nie dalo rezultatu , przynajmniej an tyle ile probowalem ;/
Użyj to tego osobnego wątku (klasa TThread).
To, że się wiesza, to raczej nie jest wina komponentu, bo mi się nic nie wiesz, dalej wszystko działa normalnie, nawet jak nie ma połączenia.
Może zastosowałeś jakąś głupią pętle np.
<font color="blue">Until "przyjdzie odpowiedź"</span>
nie , dalem sobie "break" po czym jechalem "step over" zeby zobaczyc przy czym sie tak zatrzymuje , i znalzlem ze "wisi" na unit ICMP przy linijce
Result := IcmpSendEcho(hICMP, FIPAddress, pReqData, FSize,
@IPOpt, pIPE, BufferSize, FTimeOut);
dalej sie juz nie zapusczalem bo to juz nie dla mnie ;]
zreszta sam progs jest zywcem wziety z ich przykladu dolaczonego do komponentu ja nic w nim nie zmienilem, TThreadami sie nie bawilem jescze , i cos mi nie wychodzi, tzn pomyslalem ze wzuce tam procedure ping1.ping; do uses wpisalem tez wykozystanie tego komponentu ale jak tego threada uruchomic zebym mogl wstawic tping z glownego unitu to za cholere nie wiem ;/
<font color="blue">Result := IcmpSendEcho(hICMP, FIPAddress, pReqData, FSize,
@IPOpt, pIPE, BufferSize, FTimeOut);</span>
Zatem nie ma innego wyjścia jak wątki, bo w parametrze masz FTimeOut - to jest odpowiedzialne za czas w przypadku nie otrzymania żadnej odpowiedzi...
chm bylbym wdzieczny jakbys napisal mi krotki opis jak ma wygladac ten watek oraz jak mam go wywolac z glownego unitu, zeby sprawa byla prostsza to napisz mi np jak kliknac buttonem(button1.click) znajdujacym sie np na formie glownego unitu
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.