Imam dve forme, obe imaju na sebi neku sliku (jpg) preko celog prozora + dodatne kontrole. Iz jednog prozora mogu da otvorim drugi, i obratno (preklapaju se prozori). Medjutim, u tom trenutku, kada prelazim sa form1 na form2, prvo mi se prikazu kontrole na form2, a tek onda njegova slika. Naravno ruzno izgleda, kao da sam na form1 dodao neke kontrole, i tek onda prikazao form2.
Kako da postavim da se sve lepo iscrta, i tek kada je gotovo da se prikaze? Ili mozda kako da detektujem da je sve pripremljeno, i da mogu da prikazem pomenutu formu?
Nisam bas najbolje skapirao problem, ali moguce da ce ti pomoci da u Form2.OnActivate stavis Image1.Repaint, ili na nekom jos nizem nivou od OnActivate, ili posle samog poziva Form2.Show...
Ako ne pomogne posalji uprosceni problem pa cemo da vidimo...
Uglavnom se prvo iscrtavaju TWin (wrapp-ovane) kontrole, a onda TGraph kontrole..., jer ove prve iscrtava sam windows...
[Edit]
Probaj i da dodas u OnCreate obe forme DoubleBuffered := True, jer to sto tebi treba (iscrtavanje u bafer pa flip na ekran) je upravo DoubleBuffer tehnika...
Da, malo je nejasno sta sam hteo... Ok, ovako: pre prikazivanja forme, sve kontrole te forme se postave visible := false, prikaze se ta forma, iscrta se slika.... SAD KADA BIH ZNAO KOJU WINDOWS PORUKU DA HVATAM... i stavim da je za sve kontrole visible := true.
Dakle, KOJE SU poslednje windows poruke, nakon sto se forma prikaze na ekranu?
(WM_ACTIVATE, WM_NCActivate, WM_Paint, ?!?)
(DoubleBuffered probao, hvala. Verovatno je problem u tome sto ni ja nisam nacisto sta tacno treba, pa zato opisuje ovo sve tako .... nepovezano)
@Srki_82
Na zalost to nije pomoglo: evo sta se desava (kada stavim panel, na njega sliku, a kontrole na formu (bringtofront): prikaze se panel sa kontrolama, i onda se iscrta slika.
Meni treba suprotna stvar, da se isrta slika (koristim WM_ERASEBKGND - moram ovako, nepitaj), a tek onda da se prikazu kontrole.
Dakle samo mi treba da detektujem kada je program zavrsio sa crtanjem slike, (hvatanjem neke Windows poruke, PITANJE JE KOJE), i onda da stavim da su sve kontrole na formi visible := true, pa da se onda prikazu....
Kada programer hoce da sebi skrati posao, na racun koda... c c c.... (projekat je "malo" preterano velik, pa je na dosta mesta trebalo neke stvari prepravljati (bolje ikad neko nikad), hteo sam te prepravke da "zaobidjem", i samo napravio veci problem).... Sada je OK, reseno...