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

Rapaint na Image - pomoc!!!

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

[ Pregleda: 859 | Odgovora: 3 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ajvan
Ivan Jovanovic
Novi Sad

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



Profil

icon Rapaint na Image - pomoc!!!21.11.2005. u 12:39
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???
21.11.2005. u 12:39 

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1402
82.208.201.*

ICQ: 246436949


Profil

icon Re: Rapaint na Image - pomoc!!!21.11.2005. u 15:37
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
DirectX na srpskom | GLScene na srpskom

There are only 10 types of people in this world; those who understand binary and those who don't.
21.11.2005. u 15:37 

Ajvan
Ivan Jovanovic
Novi Sad

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



Profil

icon Re: Rapaint na Image - pomoc!!!22.11.2005. u 14:14
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
22.11.2005. u 14:14 

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1402
82.208.201.*

ICQ: 246436949


Profil

icon Re: Rapaint na Image - pomoc!!!22.11.2005. u 15:28
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.

DirectX na srpskom | GLScene na srpskom

There are only 10 types of people in this world; those who understand binary and those who don't.
22.11.2005. u 15:28 

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

[ Pregleda: 859 | Odgovora: 3 ]

Postavi temu Odgovori

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