[ axx420 @ 15.12.2006. 11:47 ] @
Dakle, kod:
Code:
oForm=Createobject("Form")
oForm.Show()
prikazuje formu i forma dobija fokus.
Otkrio sam da kod:
Code:
oForm=Createobject("Form")
oForm.Visible=.t.
prikazuje formu i forma NE dobija fokus ...ali ponekad

U suštini želim da, ne ometajući korisnika u trenutnoj akciji, otvorim formu sa nekim obaveštenjem koje ne zahteva akciju korisnika (recimo: stigla je nova poruka za korisnika). Probao sam sa _screen.ActiveForm i _screen.ActiveControl i upetljao se. Kao da bi promiče nešto skroz jednostavno.
Potrgah se tražeći na netu ali nisam našao rešenje. Help!
[ Zed Mc Jack @ 18.12.2006. 08:04 ] @
Pre nego što je prikažeš treba da dodaš jednu liniju
Code:

oForm.AlwaysOnBottom=.T.

Ja nisam proveravao sve detalje, da li to radi i ako je otovrena modalna forma itd, ali eto nešto uradi i ti

HTH
[ axx420 @ 18.12.2006. 14:51 ] @
Hvala Zed Mc Jack, ali nije pomoglo :(

Bez obzira što je forma "iza svih otvorenih" ipak je aktivna odnosno ima fokus.

Probao sam sve:
- da sa nodefault u Show i Activate zaobiđem pokretanje ovih eventa
- isključivao i uključivao mnoge properties (AllowOutput, Desktop, ShowWindow, čak i WindowState i Visible)
- pokušaj sa ActiveForm radi samo kada postoji aktivna forma pre toga ali tada forma prvo dobije fokus pa ga izgubi što je ružno i zbunjujuće
- petljanje sa starim define window takođe nije pomoglo
- petljanje sa ShowWindow Windows API funkcijom - nije pomoglo

Jedino rešenje je da "progledam kroz prste" da pri prvom prikazivanju forma ima fokus.
Formu čuvam u memoriji (bez release) sve dok postoji potreba za njom (do kraja rada programa).
Svako sledeće prikazivanje (sa Visible=.t.) forma nema fokus.

Ovo zadnje "pije vodu" ali me kopka da li je moguće da ne može da se prikaže forma bez fokusa?
[ Zed Mc Jack @ 18.12.2006. 16:49 ] @
Sad se setih jednog od uobičajenijih trikova u Fox-u.
Kada imaš takve gadne vizuelne efekte i slično možeš da uradiš lockscreen=.T. i kada se ispisivanje završi i forma ode u pozadinu, dozvoliš iscrtavanje sa lockscreen=.F.

Javi ako pronađeš rešenje