[ preki @ 16.06.2001. 22:24 ] @
e, pazi vamo, opet izazov
imam dve forme. procedura X iz form1 poziva form2 na kojoj ima dugme. Procedura X treba da zaustavi izvrsavanje dok se ne klikne dugme na form2. izgleda jednostavno, ali vraski tesko ako ne znas (ja :o)).
Ako neko zna kako da ovo odradim ili da zaobidjem nek' okaci.
Hvala unapred !

[Ovu poruku je menjao preki dana 06-17-2001 u 11:41 AM GMT]
[ overflow @ 17.06.2001. 13:08 ] @
Pa pazi, ideja bi bila (ako sam dobro skapirao problem) da uvedes jednu globalnu promenljivu tipa boolean u Unitu koji predstavlja Formu2 (npr. test:boolean) i koja ispituje da li je taster na toj Formi2 pritisnut (true) ili nije (false).

I u proceduri X (forme1) ispitas :

if form2.test=false then
form2.show
else begin
{uradi ostatak }
end;

Na Form2.Button1Click stavis :
test:=true;
proceduraX;

A na Form2.OnCreate postavis:
test:=false;

To je moja ideja, mozda postoji i elegantnije resenje.
[ tOwk @ 27.06.2001. 02:14 ] @
Možda je bolje da se napravi "Modal form" ili tako nešto.

Davno je prošlo od moje poslednje uporabe Delphi-a, ali najverovatnije bi moglo da se podesi u neki "Window Type" ili slično da forma na kojoj se nalazi dugme koje treba pritisnuti bude "Modal". Ovime se obezbeđuje funkcionalnost ista kao kod Win dijaloga (OK - Cancel, Yes - No - Cancel, itd.)

Toliko.
[ Gojko Vujovic @ 27.06.2001. 11:48 ] @
Nisam stigao da odgovorim na ovo pitanje, a i malčice je loše formulisano pa nisam shvatio šta hoće čovek :)

Dakle jedno:
Code:

form2.showmodal;


..umesto..

Code:

form2.show;



..rešava problem.
[ overflow @ 27.06.2001. 15:12 ] @
Citat:
Gojko je napisao:
Nisam stigao da odgovorim na ovo pitanje, a i malčice je loše formulisano pa nisam shvatio šta hoće čovek

Dakle jedno:
Code:

form2.showmodal;


..umesto..

Code:

form2.show;



..rešava problem.


A mozda covek ne zeli da se vrati kada klikne na taster na formu1 ?!
[ Gojko Vujovic @ 27.06.2001. 18:44 ] @
A zašto bi morao da se vrati?

Ne mora taj taster da bude jedan od modalnih koji moraju da vrate neki rezultat..

U onclick:
application.terminate;

Koliko toliko ovoliko.
[ overflow @ 28.06.2001. 12:18 ] @
Citat:
Gojko je napisao:
A zašto bi morao da se vrati?

Ne mora taj taster da bude jedan od modalnih koji moraju da vrate neki rezultat..

U onclick:
application.terminate;

Koliko toliko ovoliko.


Pa jesi li ti procitao da covek zeli kada klikne na taster da mu naredbe iz procedureX na formi1 nastave da se izvrsavaju ? Ako postavis formu2 na modal, onda sve dok se sa nje "ne skines" ne moze kod sa forme1 da se izvrsava ... a to je moguce ovom mojom foricom ...
[ Gojko Vujovic @ 28.06.2001. 12:55 ] @
Ja sam shvatio da treba da se zaustavi izvršavanje a ne da se nastavi.

"Procedura X treba da zaustavi izvrsavanje dok se ne klikne dugme na form2"
[ preki @ 29.06.2001. 23:21 ] @
e, nisam bio "tu" par dana, sta ces ispiti. Nego da lepo pojasnim sta mi treba. Elem

Na form1 se izvrsava program dok se ne ustanovi tajmerom da treba da se obavi nesto. To nesto je procedura iz koje ide form2.show, ali ima jos stvari iza tog poziva. Znaci treba da se pozove form2, a da se po kliku na OK zavrsi sa form2 i nastavi izvrsavanje procedure (i eventualno ponovo pozove form2 itd.)
Nadam se da je sada jasnije sta hocu
[ overflow @ 01.07.2001. 12:42 ] @
Citat:
Gojko je napisao:
Ja sam shvatio da treba da se zaustavi izvršavanje a ne da se nastavi.

"Procedura X treba da zaustavi izvrsavanje dok se ne klikne dugme na form2"


Pa da ... a kada se na njega klikne da se procX nastavi sa izvrsavanjem ... nigde ne pise, da treba da se skine form2. Bar nije do sada pisalo ...
AW, posto je sada covek ipak rekao da treba da se skine forma2, onda mu preporucujem tvoje resenje ...
Dakle, preki, u proceduriX, umesto Form2.show; stavi Form2.ShowModal; a u OnClick tastera na formi 2 stavi ModalResult:=mrOK;
i to je to...