[ prginfo @ 08.04.2009. 10:28 ] @
Koristim D2007

Imam 3 Forme. Na prvoj formi imam panel i meni. U meniju imam sledece:

prikazi formu 2, prikazi formu 3, prikazi formu 1

Kada izaberem opciju prikazi formu 2, u okviru Panela mi se prikazuje Form2. Isto tako radi i za Form 3. (Panel je Parent za forme)


Pitanje:

Kada idem na opciju prikazi formu 1, zeleo bih da uradim Destroy svih formi sem forme 1 na kojoj je panel.

Kako?

Hvala
[ mr.zhile @ 08.04.2009. 10:35 ] @
>


napravis jednu for petnlju i ispitujes tip forme...tj klasu forme,pa kad je
klasa TForm1,onda nju ne brises..
probaj pa javi kako ide...popodne ti mozda i posaljem kod...


[Ovu poruku je menjao mr.zhile dana 08.04.2009. u 12:04 GMT+1]
[ NemesisMMX @ 08.04.2009. 10:36 ] @
A ko je owner tih formi?
Da li su automatski napravljene kada se startuje aplikacija ili ih ti
pravis pre prikazivanja?
Generalno, treba samo da pozoves form1.free i form2.free kada se
selektuje prva opcija u meniju.
[ prginfo @ 08.04.2009. 10:38 ] @
Da li moze neki mali primer za ispitivanje klasa formi tipa

for i:=0 to ...-1
do
begin;
...
end;
[ Rapaic Rajko @ 08.04.2009. 10:50 ] @
Nista lakse:

1) Pogledaj u helpu klasu TScreen, tacnije globalni objekat Screen i propertije Screen.Forms i Screen.FormCount.
2) Pogledaj u helpu "is" ("If AnyForm is TMyForm").

Rajko
[ savkic @ 08.04.2009. 10:56 ] @

> --001636c5b84d90acd3046707da76
> Content-Type: text/html; charset=ISO-8859-1
> Content-Transfer-Encoding: quoted-printable

U čemu je štos kod odgovaranja preko mejla, da li ovaj dodatni deo mora da stoji ili ti grešiš u postupku?
[ mr.zhile @ 08.04.2009. 11:06 ] @
>

mislim da moraju stajati dpoadatni redovi
[ prginfo @ 08.04.2009. 11:48 ] @
Gledao sam help, ali imam problem, zato sto po help, treba da se radi countdown i kada zelim da uradim free, prijavi mi iNDEX OUT OF BOUNDS...

Da li moze neki primer kako da kazem da mi uradi Free svih formi sem Forme1
[ savkic @ 08.04.2009. 12:22 ] @
Code:

for i := Screen.FormCount - 1 downto 0 do
  if Screen.Forms[i] <> Application.MainForm then
    Screen.Forms[i].Release; 
[ prginfo @ 08.04.2009. 12:56 ] @
Pokusao sam tako i pre, ali onda mi kod dela for i := Screen.FormCount - 1 prijavi

must be Local Variable
[ NemesisMMX @ 08.04.2009. 13:09 ] @
To znaci da ti varijabla i nije lokalna varijabla. Da bi mogao da je
koristis u loop petlji ona mora biti definisana
u var delu metoda u kojem pozivas for loop a ne neka globalna
varijabla. I ne mora da bude i moze bilo koje slovo...

procedure SomeClass.Method ()
var
i: integer
begin

for i ...
...

end;
[ prginfo @ 08.04.2009. 14:13 ] @
Hvala Savkicu za primer i NemesisMMX za objasnjenje.

Uspeo sam i sa nekom kombinacijom Destroy, ali naravno da je ovo bolje resenje.

Sada mi funkcionise kako sam i zamislio.
[ priki @ 10.04.2009. 11:06 ] @
Citat:
Koristim D2007
Kada izaberem opciju prikazi formu 2, u okviru Panela mi se prikazuje Form2. Isto tako radi i za Form 3. (Panel je Parent za forme)
Hvala


bolja varijanta ti je da uzmes klasu TFrame da ti "glumi formu" na panelu
TFrame isto ima svoje constructor i destructor metode
samim tim i oslobađanje memorije je jednostavnije

mnogo brze, jednostavnije, memorijski manje zahtevnije i elegantije
rešenje nego sa formom na panelu