Pauza – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pauza – Delphi – Fórum – Programujte.comPauza – Delphi – Fórum – Programujte.com

 

Hitchs0
Duch
19. 12. 2009   #1
-
0
-

zdravím, potřeboval bych poradit. mám funkci, ve funkci je cyklus, který postupně provádí jistý převod a já bych tam někam do toho cyklu potřeboval vložit nějak pauzu, provést výpis mezivýsledku a čekat na kliknutí na tlačítko pro pokračování na další krok, tam se v onom cyklu provede znova další krok výpočtu a opět pauza, výpis, čekání.. v Delphi jsme se ve škole moc neučili, tak bych byl moc vděčný za pomoc, čim nebo jak to provést.. Děkuju:)

Nahlásit jako SPAM
IP: 77.104.210.–
illioner0
Stálý člen
20. 12. 2009   #2
-
0
-

napadá mě to řešit-
pseudokód:
repeat

výpočet

proměnná dosáhla hodnoty then
begin
vypis; // napr. do labelu
pauza:=1;
repeat
application.processmessages; // bez tohoto to nepujde
sleep(100);
until pauza=0;
end;

until konec vypoctu

Obsluha eventu TLACITKA
if zmacknuto then pauza:=0;

---------------------
nebo varianta 2
pseudokód:

mame aktivovany Timer:
Procedure Timer
inc(hodnatatimeru);

Procedure Vypocet;
repeat

výpočet

If hodnotatimeru>100 then
begin
vypis; // napr. do labelu
pauza:=1;
repeat
application.processmessages; // bez tohoto to nepujde
sleep(100);
until pauza=0;
hodnotatimeru:=0;
end;

until konec vypoctu

Obsluha eventu TLACITKA
if zmacknuto then pauza:=0;


nebo podle potřeby mírně osolit a doupravit..

Nahlásit jako SPAM
IP: 85.71.152.–
Nechápu softwarové firmy, ktere utrácejí za čim dál těžkopádnější DRM ochranu!! Vidět kolem snahu o free2play model je jako příjemné připomenutí časů shareware (jen ten Microsoft stále nic nepochopil)
Hitchs0
Duch
20. 12. 2009   #3
-
0
-

To illioner : díky moc, a ještě detail.. co přesně dělají položky application.processmessages a sleep(100) ?

Nahlásit jako SPAM
IP: 77.104.210.–
illioner0
Stálý člen
20. 12. 2009   #4
-
0
-

processmessages co vim se dívá do fronty událostí okna, protože máš jenom jeden thread zaseklej v cyklu, tak by nedošlo ke zpracování kódu v obsluze tlačítka a kdekoliv jinde. Sleep je ta opakovaná pauza a uspání aplikace na danej počet milisekund. Dalo se to taky víc vláknama, ale je to zbytečný, všechno i ukončení aplikace se zvládne pomocí komunikace přes proměnný v 1 threadu.

Nahlásit jako SPAM
IP: 85.71.152.–
Nechápu softwarové firmy, ktere utrácejí za čim dál těžkopádnější DRM ochranu!! Vidět kolem snahu o free2play model je jako příjemné připomenutí časů shareware (jen ten Microsoft stále nic nepochopil)
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Podobná vlákna

Pauza — založil to_jsem_ja

Pauza v DOSu — založil ospaly.stanislav

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý