Ĺadny brzuch
Witam
Mam taki kodzik:
var Form1: TForm1; uruchomienie:integer; . . . . procedure TForm1.FormCreate(Sender: TObject); begin uruchomienie := 5; Timer1.Enabled:=true; end; procedure TForm1.Timer1Timer(Sender: TObject); begin uruchomienie := uruchomienie - 1; if uruchomienie = 0 then begin ggl.login := 123456789; ggl.password := 'haslo'; ggl.GGInitHost; if ggl.GGLogon()=0 then //jesli udane polaczenie z serwerem gg begin ggl.GGChangeUserStatus; Timer1.Enabled:=false; //wylaczenie timera zeby nonstop sie nie laczyl gdy jestesmy polaczeni end else begin uruchomienie := 10; Timer1.Enabled:=true; //wlaczenie timera w przypadku braku polaczenia (profilaktycznie) end; end; end; procedure TForm1.gglDisconnecting(Sender: TObject); begin uruchomienie := 10; Timer1.Enabled:=true; end;
Korzystam z komponentu gglite. Program ma za zadanie połączyć się z numerem, a w przypadku niepołączenia - spróbować ponownie po kilku sekundach. Łączyć się łączy i jest super :) Problem polega na tym, iż jeśli nie będzie internetu, to wykorzystanie procesora wynosi ponad 90%. Jeśli internet już będzie, i program połączy się, to program działa "normalnie". Przypuszczam, że gdzieś w kodzie jest jakiś błąd. Tylko nie wiem gdzie. Dałem przecież, że jeśli jest niepołączony to ma odczekać 10 sekund i dalej probować, a tak chyba nie jest :(
Czy ktoś może pomóc? Bardzo mi na tym zależy... Z góry WIELKIE DZIĘKI!!!
Użytkownik userup edytował ten post 20 styczeń 2008, 13:08
Spróbuj może wyłączyć timer przed próbą łączenia, żeby nie wywoływał Timer1Timer co chwilę gdy jest zajęta łączeniem. Nie wiem czy to coś da, ale można spróbować.
procedure TForm1.Timer1Timer(Sender: TObject); begin uruchomienie := uruchomienie - 1; if uruchomienie = 0 then begin Timer1.Enabled:=false; //wylaczenie timera ggl.login := 123456789; ggl.password := 'haslo'; ggl.GGInitHost; if ggl.GGLogon()=0 then //jesli udane polaczenie z serwerem gg begin ggl.GGChangeUserStatus; end else begin uruchomienie := 10; Timer1.Enabled:=true; //wlaczenie timera w przypadku braku polaczenia end; end; end;
//i zamień [.code] na [.codebox]
Użytkownik Radek edytował ten post 19 styczeń 2008, 17:03
Spróbuj może wyłączyć timer przed próbą łączenia, żeby nie wywoływał Timer1Timer co chwilę gdy jest zajęta łączeniem. Nie wiem czy to coś da, ale można spróbować.
procedure TForm1.Timer1Timer(Sender: TObject); begin uruchomienie := uruchomienie - 1; if uruchomienie = 0 then begin Timer1.Enabled:=false; //wylaczenie timera ggl.login := 123456789; ggl.password := 'haslo'; ggl.GGInitHost; if ggl.GGLogon()=0 then //jesli udane polaczenie z serwerem gg begin ggl.GGChangeUserStatus; end else begin uruchomienie := 10; Timer1.Enabled:=true; //wlaczenie timera w przypadku braku polaczenia end; end; end;
//i zamień [.code] na [.codebox]
Niestety to samo... :(
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam taki kodzik:
var Form1: TForm1; uruchomienie:integer; . . . . procedure TForm1.FormCreate(Sender: TObject); begin uruchomienie := 5; Timer1.Enabled:=true; end; procedure TForm1.Timer1Timer(Sender: TObject); begin uruchomienie := uruchomienie - 1; if uruchomienie = 0 then begin ggl.login := 123456789; ggl.password := 'haslo'; ggl.GGInitHost; if ggl.GGLogon()=0 then //jesli udane polaczenie z serwerem gg begin ggl.GGChangeUserStatus; Timer1.Enabled:=false; //wylaczenie timera zeby nonstop sie nie laczyl gdy jestesmy polaczeni end else begin uruchomienie := 10; Timer1.Enabled:=true; //wlaczenie timera w przypadku braku polaczenia (profilaktycznie) end; end; end; procedure TForm1.gglDisconnecting(Sender: TObject); begin uruchomienie := 10; Timer1.Enabled:=true; end;
Korzystam z komponentu gglite. Program ma za zadanie połączyć się z numerem, a w przypadku niepołączenia - spróbować ponownie po kilku sekundach. Łączyć się łączy i jest super :) Problem polega na tym, iż jeśli nie będzie internetu, to wykorzystanie procesora wynosi ponad 90%. Jeśli internet już będzie, i program połączy się, to program działa "normalnie". Przypuszczam, że gdzieś w kodzie jest jakiś błąd. Tylko nie wiem gdzie. Dałem przecież, że jeśli jest niepołączony to ma odczekać 10 sekund i dalej probować, a tak chyba nie jest :(
Czy ktoś może pomóc? Bardzo mi na tym zależy... Z góry WIELKIE DZIĘKI!!!
Użytkownik userup edytował ten post 20 styczeń 2008, 13:08
Spróbuj może wyłączyć timer przed próbą łączenia, żeby nie wywoływał Timer1Timer co chwilę gdy jest zajęta łączeniem. Nie wiem czy to coś da, ale można spróbować.
procedure TForm1.Timer1Timer(Sender: TObject); begin uruchomienie := uruchomienie - 1; if uruchomienie = 0 then begin Timer1.Enabled:=false; //wylaczenie timera ggl.login := 123456789; ggl.password := 'haslo'; ggl.GGInitHost; if ggl.GGLogon()=0 then //jesli udane polaczenie z serwerem gg begin ggl.GGChangeUserStatus; end else begin uruchomienie := 10; Timer1.Enabled:=true; //wlaczenie timera w przypadku braku polaczenia end; end; end;
//i zamień [.code] na [.codebox]
Użytkownik Radek edytował ten post 19 styczeń 2008, 17:03
Spróbuj może wyłączyć timer przed próbą łączenia, żeby nie wywoływał Timer1Timer co chwilę gdy jest zajęta łączeniem. Nie wiem czy to coś da, ale można spróbować.
procedure TForm1.Timer1Timer(Sender: TObject); begin uruchomienie := uruchomienie - 1; if uruchomienie = 0 then begin Timer1.Enabled:=false; //wylaczenie timera ggl.login := 123456789; ggl.password := 'haslo'; ggl.GGInitHost; if ggl.GGLogon()=0 then //jesli udane polaczenie z serwerem gg begin ggl.GGChangeUserStatus; end else begin uruchomienie := 10; Timer1.Enabled:=true; //wlaczenie timera w przypadku braku polaczenia end; end; end;
//i zamień [.code] na [.codebox]
Niestety to samo... :(