Hej Hej! Har inte använt socket komponenterna men borde inte koden se ut ungefär så här. Hej igen Hej igen! Hej Hej igen, Showmodal gör att programmet inte fortsätter förrän du stängt formuläret. Använd Show istället. Tack så mycket. Vet inte om det fungerar än, men ska hem och testa!Repeat - until-problem
Har ett program som ska koppla till en server, ta ner informationen och stänga sig, och sedan göra om den hela proceduren.
Koden till att ta ner informationen är klar, och fungerar som den ska. Men min loop fungerar inte som jag vill. Varje gång jag kör den så hänger sig programmet.
Jag använder mig av en TClientsocket för att ta ner informationen, och min loop som är väldigt enkel ser för tillfället ut såhär
repeat
clientsocket1.open;
clientsocket1.close;
until
gauge1.Percentdone = 100
end;
Vet om att den inte känns rätt. Någon som har något bra tips om hur jag ska fixa mitt problem?Sv: Repeat - until-problem
Repeat satsen är lömsk den kan lätt föra ut dig
i den binära rymden.
Kan inte riktigt analysera vad som skall hända Men
du bör börja med att skriva så här.
Application.ProcessMessages
gör att du kan komma åt tex
avstängning i varje loop.Avbrottshantering
repeat
clientsocket1.open;
// samma som DoEvents i VB
Application.ProcessMessages ;
clientsocket1.close;
until gauge1.Percentdone = 100 ;
Du kan också testa att lägga in ett Break i loopen
ex If i = 1000 Then
Break ;
inc(i) ;
mvh
SvenSv: Repeat - until-problem
Jag testade att ändra om det hela på många olika sätt men ändå får jag alltid samma felmeddelande:
'Asynchrononous socket error 10049'
Sedan när man kör igång igen så räknar min gauge upp till hundra, men inget händer.
Mvh
/MichaelSv: Repeat - until-problem
//Öppnar Socket
clientsocket1.open;
//Väntar på att kommunikationen ska bli klar
repeat
Application.ProcessMessages;
until gauge1.Percentdone = 100;
//Stänger socket
clientsocket1.close;
Felmeddelandet betyder:
"WSAEADDRNOTAVAIL (10049)
Cannot assign requested address.
The requested address is not valid in its context. Normally results from an attempt to bind to an address that is not valid for the local machine, or connect/sendto an address or port that is not valid for a remote machine (e.g. port 0)."
http://support.microsoft.com/support/kb/articles/Q199/4/85.ASPSv: Repeat - until-problem
Testa ett förslag till
repeat
clientsocket1.open;
Application.ProcessMessages ;
clientsocket1.close;
Application.ProcessMessages ;
until gauge1.Percentdone = 100 ;
mvh
SvenSv: Repeat - until-problem
Jag har inte riktigt haft tid till att arbeta vidare på programmet, men idag tänkte jag att jag skulle försöka lite av det ni visade. Men fortfarande går det inte.
Det som ska hända är att programmet tar emot sidan, och sedan stänger igen. Alltså, programmet ska testa och se om servern är stabil nog att ta emot ett visst antal besökare(minst 10 000 per min).
Form1.clientsocket1.host := edit1.text;
form1.Timer1.Enabled := true;
form3.showmodal;
repeat
form1.ClientSocket1.Open;
Application.ProcessMessages ;
form1.clientsocket1.close;
until
form3.gauge1.percentdone = 100;
end;
Ovanstående kod är det jag använder just nu, men det fungerar som sagt inte. Enbart en registeras.
Hoppas ni har en bra lösning som jag kan använda mig av!
Mvh
//Michael KarlssonSv: Repeat - until-problem
Har du testat införa ett Application.ProcessMessages till
efter Close så att close hinner utföras inna ett nytt open kommer
repeat
form1.ClientSocket1.Open;
Application.ProcessMessages ;
form1.clientsocket1.close;
Application.ProcessMessages ;
until
form3.gauge1.percentdone = 100;
mvh
SvenSv: Repeat - until-problem
Nu fungerar det så att jag inte får upp några felmeddelanden, men problemet är att det inte registreras några besökare!(det programmet är till för). Enbart när man stänger igen formen med min gauge, så registreras en koppling mot servern. Inte riktigt som det är tänkt.
Några idéer? :)
Mvh
/Michael KarlssonSv: Repeat - until-problem
Sv: Repeat - until-problem