Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Rapaint na Image - pomoc!!!

[es] :: Pascal / Delphi / Kylix :: Rapaint na Image - pomoc!!!

[ Pregleda: 2696 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ajvan
Ivan Jovanovic
Novi Sad

Član broj: 10783
Poruke: 71
*.ftn.ns.ac.yu.



Profil

icon Rapaint na Image - pomoc!!!21.11.2005. u 12:39 - pre 224 meseci
Imam problem u Delphi-ju 7.
na formu postavim TImage komponentu i u nju ucitam bitmapu.
Na Canvas-u TImage komponente iscrtam krug ili pravougaonik
(Image1.Canvas.Ellipse(X1,Y1,X2,Y2))
Posle nekog vremena (bilo da je definisano tajmerom ili na neki dogadjaj) zelim da izbrisem iscrtanu elipsu i ponovo prikazem cistu bitmapu koju sam prvobitno ucitao.
kada probam Refresh metod na Canvas (Image1.Canvas.Refresh;) ne pomaze;Invalidate na pomaze; Repaint ili Refresh metod na TImage komponentu ne pomaze;
Jedino sto pomaze jeste ponovno ucitavanje slike (Image1.Picture.LoadFromFile(' '))
Da li neko ima ideju kako da ovo odradim bez ponovnog ucitavanja???
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Rapaint na Image - pomoc!!!21.11.2005. u 15:37 - pre 224 meseci
TImage ucitava sliku i u sebi cuva podatke o njoj. Kada iscrtavas nesto preko Canvasa direktno menjas sliku koja je u memoriji i ne mozes vise da je vratis. Mozes uraditi nesto ovako:

1. Ucitas sliku u TPicture
2. Postavis TImage.Picture na sliku koju si ucitao
3. Menjas Image.Canvas
4. Ponovo postavljas Image.Picture na Picture koji si na pocetku ucitao
5. kraj programa... oslobadjas TPicture u kojoj je slika
 
Odgovor na temu

Ajvan
Ivan Jovanovic
Novi Sad

Član broj: 10783
Poruke: 71
*.ftn.ns.ac.yu.



Profil

icon Re: Rapaint na Image - pomoc!!!22.11.2005. u 14:14 - pre 224 meseci
Da...to sam uradio...u stvari ako sam te dobro razumeo...ono sto sam ja uradio je da sam postavio dve TImage komponente na formu sa istom bitmapom, jedna se vidi a druga ne. Pisem po Canvas-u vidljive i kad zelim da vratim prvobitni sadrzaj ucitam sliku iz druge - nevidljive TImage komponente (Image1.Picture := Image2.Picture).

To resava problem, samo nije mi jasno sta mislis pod tim menjas direktno sliku koja je u memoriji??? Ti promenis nesto iscrtavajuci po Canvas-u, ali kad ubijes aplikaciju i startujes je ponovo dobijas cistu sliku...sto znaci da on ima sadrzaj slike negde u memoriji i nije mi jasno zasto ne izvrsi Repaint slike kad to treba? No nije ni bitno, hvala na odgovoru u svakom slucaju...
pozdrav
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Rapaint na Image - pomoc!!!22.11.2005. u 15:28 - pre 224 meseci
Recimo da je slika niz brojeva (zasto li mi je to palo na pamet) :)
U fajlu pise:
Code:
Fajl:
1111111111

Kad ucitas sliku u TImage tak komponenta rezervise memoriju u kojoj ce smestiti podatke o slici i kada ih ucita iz fajla u memoriji se nalazi:
Code:
Memorija:
1111111111

Kad je potrebno da se TImage iscrta na formi koristi se slika iz memorije. Znaci, slobodno mozes da menjas podatke u fajlu, ali to nece uticati na izgled slike koja je vec ucitana.
Kad koristis Canvas direktno menjas sliku u memoriji... dakle ti nesto iscrtas i onda se u memoriji nadje nesto ovako:
Code:
Memorija:
1212121212

Cim se slika promeni TImage sama uradi Repaint na formi i vidi se ono novo sto si crtao. Kad ti naknadno pozoves Repaint opet se samo iscrta to sto je u memoriji. Da bi mogao da vratis ono sto je bilo moras sam nekako da sacuvas proslo stanje.

Nadam se da sad razumes.

 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Rapaint na Image - pomoc!!!

[ Pregleda: 2696 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.