Zatrzymanie programu po 30 minutach

0

Witam
Mam pytanie czy w delphi to jest normalne, że program przestaje działać po 30 minutach od uruchomienia ?
Nie wyłącza sie tylko, jeśli jest uruchomiona jakaś funkcja czy tez procedura to działa, ale tylko 30 minut później program przestaje ją wykonywać nie wiem czemu .
Na pewno to nie jest wina tego, co jest w programie, bo na próbę zrobiłem inny wstawiłem timer, który odlicza co sekundę czas i pokazuje, jaki jest czas obecny komputera i równo po 1800 sekundach przestaje działać program odpowiada na wciskanie przycisków ale timer nie działa
Kiedyś nie miałem takiego problemu a teras nagle się pojawił

0

a sprawdzałeś u kogoś innego??? może to wina Twojego kompa..albo jakiegoś wirusa.. :-/

0

hmm wirusa raczej nie bo komp był skanowany
na innym kompie próbowałem i jest to samo :(

0

przy każdym nowym projekcie tak się robi??
jeśli nie to prześlij mi kod tego programu to spróbuje coś wykombonować

a może coś się bawiłeś w opcjach delphi!?

0

Przy każdym nowym projekcie tak jest, bo jeśli to by było tylko z tym co teras wtedy by było jasne ze cos z nim jest nie tak
W opcjach nic nie robiłem poza zmianą położenia object inspector itp.
Tutaj jest ten kawałek kodu co wstawiam do nowego projektu nie wiem morze cos w nim jest źle

var
koniecczasu:boolean;

procedure TForm1.Button1Click(Sender: TObject);
var
today,today2 : TDateTime;
Sek,sek2: Word;
a:string[14];
begin
koniecczasu:=false;
today := Now;
a:=timetostr(today);
sek:=strtoint(a[1]+a[2])*3600;
sek:=sek+strtoint(a[4]+a[5])*60;
sek:=sek+strtoint(a[7]+a[8]);
sek2:=sek+60;
while not koniecczasu do
begin
Application.ProcessMessages;
Sleep(10); // 1234
today2 := Now;
a:=timetostr(today2);
sek:=strtoint(a[1]+a[2])*3600;
sek:=sek+strtoint(a[4]+a[5])*60;
sek:=sek+strtoint(a[7]+a[8]);
if sek>=sek2 then
begin
memo1.lines.add(a+' 60 sekund');
sek2:=sek+60;
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);// zatrzymanie czasu
begin
koniecczasu:=true;
end;

0

Przepisz to do wątku. Wtedy nie będzie żadnych problemów z wydajnością. :P

0

Z wydajnością NIE MA problemu procesor nie jest obciążony nawet
a co do wątku to nie za bardzo wiem o co chodzi :)

0

Poczytaj o wątkach... I używaj wyszukiwarki następnym razem, zanim napiszesz ze nie wiesz, bo odpowiedź często łatwo znaleźć, a nawet ci się chasła "wątki" nie chciało wpisac...

// co maja wątki do rzeczy? :| - Ł

0

To samo, tylko krócej i na pewno się nie zawiesi,

procedure TForm1.Button1Click(Sender: TObject);
var
  sec0,sec : integer;
begin
  sec0 := round(frac(Now)*24*3600);

while not koniecczasu do
begin
  Application.ProcessMessages;
  Sleep(10);
  sec := round(frac(Now)*24*3600);
  if sec >= sec0+60 then
  begin
    memo1.lines.add(timetostr(now)+' 60 sekund');
    sec0 := sec;
  end;
end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1