[ gygy @ 17.03.2004. 16:13 ] @
Kako da namestim da se program moze zatvoriti samo na button1, a ne na Alt+F4, na taster za zatvaranje(na tastaturi)...?
Kako npr kada mi je program minimize da npr posle izvenog vremena prikaze Form2 ( to sam sredio sa Timer1 komponentom i Form2.Show), posto to radi samo kada je program aktivan, a ako nesto ima startovano npr film onda nista od toga. Kako to najjednostavnije moze da se uradi?
Hvala
GYGY
[ Dusan Aleksic @ 18.03.2004. 00:55 ] @
Dakle u dogadjaj forme onclose stavis ovo:

Code:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if not(moze) then abort;
end;

a u "onclick" dogadjaj dugmeta ovo:
Code:

procedure TForm1.Button1Click(Sender: TObject);
begin
moze := true;
close
end;


i moras da imas globalnu promenjivu "moze" tipa boolean, ovakav program se moze iskljuciti samo na dugme i preko task manager-a.

Drugi deo pitanja:
Ne razumem bas najbolje pitanje. Zasto ti program ne radi posao kad je film startovan!?
Mozez da proveravas na odredjeni vremenski interval da li je form1.WindowState = wsMinimized, pa ako jeste onda ukljucis drugi tajmer koji posle izvesnog vremena uradi form2.show
[ Milos D @ 18.03.2004. 16:16 ] @
Timer nije pouzdan, ako neka aplikacije prigrabi procesor timer neće moći da se aktivira.

Vidi win help za timeSetEvent (unit mmSystem). Pozivom ove funkcije kažeš windowsu da ti za X milisekundi pozove proceduru (čiju adresu prenosiš kao parametru poziva).

Deklaracija procedure koju će Windows pozvati mora biti ovakva:

procedure Callback(uID, uMsg : UINT; dwUser, dw1, dw2 : DWORD); stdcall;