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ł
a sprawdzałeś u kogoś innego??? może to wina Twojego kompa..albo jakiegoś wirusa.. :-/
hmm wirusa raczej nie bo komp był skanowany
na innym kompie próbowałem i jest to samo :(
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!?
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;
Przepisz to do wątku. Wtedy nie będzie żadnych problemów z wydajnością. :P
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 :)
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? :| - Ł
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;