Czemu nie widać?

0
procedure TForm1.Button2Click(Sender: TObject);
var
f:integer;
begin
repeat
f:=strtoint(edit3.text) + 1;
sleep(100);
Edit3.Text:=inttostr(f);
until edit3.Text='150';
close;
end;

end.

wszystko ok, liczy ale w edit3 nie widać. hmm odliczania.. poza tym jak posłużyć sie timerem do odliczania? jest tam tylko inteval, a jak tego użyć?

0

Interval to czas, jaki upływa pomiędzy tyknięciami zegara. Obsługuje się to tak, że w jedynym zdarzeniu Timera wpisujesz ,co się ma dziać co czas podany w Interval. A to co napisałeś, to ci zapewne działa ,ale efektów nie wiadć, bo nie dałeś Application.ProcessMessages.

0

nadal bez zmian to: Application.ProcessMessages należało wpisać w Projekt?

0

Application.ProcessMessages wpisz po slowie repeat

procedure TForm1.Button1Click(Sender: TObject);
var
f:integer;
begin
repeat
Application.ProcessMessages;
f:=strtoint(edit1.text) + 1;
sleep(100);
Edit1.Text:=inttostr(f);
until edit1.Text='150';
close;
end;

0

Zaraz pod słówkiem

repeat

dajesz Application.ProcessMessages;

0

hmm zrobiło sie jakoś tak dziwnie że podczas odliczania nie działa nic, tzn pętla pożera 99% mocy procesora? jak temu zapobiec?

0

hmm zrobiło sie jakoś tak dziwnie że podczas odliczania nie działa nic, tzn pętla pożera 99% mocy procesora? jak temu zapobiec?

Dziwne - musiałeś popełnić jakiś błąd - u mnie działa normalnie ... - napisz może swój kod ponownie :-/

0

no sprawdzałem kilka razy, i ciągle to samo....

0

No to użyj Timera... Sleep ma to do siebie, że zżera czasem sporo zasobów... A jedyny raz jak używałem ProcessMessages to mi się komp zwiesił przy wywołaniu. Timer jest dużo lepszym rozwiązaniem takiego problemu.

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