[ DART_VEJDER @ 25.10.2005. 14:27 ] @
kako da napravim da, kad mi se otvori neka forma, da bude u tom trenutku iznad svih ostalih programa....

pokusao sam sa i sa FormStyle=fsStayOnTop i Form1->Focused();
, ali opet npr. kad mi je ukljucena opera ili gledam neki film (postavio sam da mi poslije 10 sec. Form1 bude vidljiv) Form1 se prikaze, ali "iza" ovih programa...

i jos jedno pitanje:

kako da vidim da li mi je neka forma aktivna?? znaci, kako da preko koda "vidim" da li je neka forma ukljucena ili nije??

npr. program ima 10 formi, i hocu da vidim da li je form4 trenutno ucitan, tj. "podignut" ili nije??
[ X Files @ 25.10.2005. 15:58 ] @
Citat:

kako da napravim da, kad mi se otvori neka forma, da bude u tom trenutku iznad
svih ostalih programa....
pokusao sam sa i sa FormStyle=fsStayOnTop

Hm... Nije mi jasno kako ti to ne radi?! Sigurno si nesto prevideo, jer ja imam dosta
programa koji su fsStayOnTop. fsStayOnTop zaista cini glavnu formu da bude iznad
ostalih, sve do trenutka kada se pojavi neka druga forma koja takodje ima ambiciju
da bude iznad svih...

fsStayOnTop ima i neki bug koji to setovanje izgubi kada (mislim) dodje do nekog
izuzetka:

Code:

try
{
   // ... nesto ...
}
catch ( const Exception &e )
{
   // ... ovde se nekada desi da se fsStayOnTop izgubi!!!
}

Tada se stvar vraca u prvobino stanje sa /negde u konstruktoru/:
Code:

SetWindowPos( Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOSIZE );

... a po potrebi i u TTimer-u...

Bolje ovo gore, nego ponovo:

Code:

FormStyle=fsStayOnTop;


jer u dokumentaciji pise da se ovo drugo ne radi dinamicki, vec iskljucivo u ObjectInspectoru?! Ovo mi je malo cudno, jer Windowsi nemaju nikakav problem sa
dinamickim menjanjem toga...

Kako ti postavljas FormStyle? U ObjectInspectoru ili dinamicki?

Citat:

i Form1->Focused();

Ovo nema veze sa time...

Citat:

kako da vidim da li mi je neka forma aktivna?? znaci, kako da preko koda
"vidim" da li je neka forma ukljucena ili nije?? npr. program ima 10 formi, i hocu
da vidim da li je form4 trenutno ucitan, tj. "podignut" ili nije??

Ovde si pomenuo rec UKLJUCENA :) sto govori o tome da ti mozda nije jasno
kako sve to funkcionise:

BCB po default-u vec STATICKI kreira za tebe Form1, Form2, ..., koje su odmah
spremne za PRIKAZIVANJE, dakle:

Code:

Form2->Show();
Form3->Show();

Ovo guta resurse i nije u stilu OOP-a.

Ja licno, forme DINAMICKI kreiram onda kada su mi potrebne:

Code:

Form2 = new TForm2( this );
Form2->ShowModal();
delete Form2;
Form2 = NULL;


Prethodno te forme koje kreiras dinamicki treba ukloniti iz liste za direktno
kreiranje u Project1.cpp, ili koroz Project/Options/Forms

Ako koristis moj nacin, onda je lako:

Code:

if ( Form2 )
{
   // UKLJUCENA :)
}
else
{
   // ISKLJUCENA
}


A kod tvog primera pogledaj:

Code:

if ( Form2->Visible )
{
   // UKLJUCENA :)
}
else
{
   // ISKLJUCENA
}


[Ovu poruku je menjao X Files dana 25.10.2005. u 16:59 GMT+1]
[ DART_VEJDER @ 25.10.2005. 20:29 ] @
FormStyle postavljam u ObjectInspectoru


Ako koristis moj nacin, onda je lako:

Code:

if ( Form2 )
{
// UKLJUCENA :)
}
else
{
// ISKLJUCENA
} - PA DA! KAKO SAM GLUP!!! :-)