[ Cyber X @ 06.07.2005. 14:27 ] @
Moze li neko da mi objasni kako da ucitam sliku u posebnu celiju DrawGrid-a? Ili je mozda za to pogodniji StringGrid? Ni u jednom ni u drugom ne znam to da izvedem :(( HELP ! |
[ Cyber X @ 06.07.2005. 14:27 ] @
[ Toyo @ 06.07.2005. 15:12 ] @
Na onDrawCell upises:
Code: procedure TMain.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if (Acol=0) and (arow=0) then with (Sender as TDrawgrid) do with canvas do Draw(Rect.Left,Rect.top,image1.Picture.Graphic); end; Trebalo bi da je dobro (nisam proveravao). [ Cyber X @ 06.07.2005. 16:15 ] @
Radi, ali...
Meni treba da se slika pojavi npr. na pritisak dugmeta, a to sa ovim kodom ne mogu da izvedem. [ Srki_82 @ 06.07.2005. 16:22 ] @
Pa ti na pritisak dugmeta postavi neki flag (recimo ShowPictures := True) i ako je taj flag postavljen onda iscrtavaj slike.
[ Cyber X @ 06.07.2005. 16:32 ] @
Hmm... Verovatno treba da bolje pojasnim.
Meni treba ovo zato sto ponovo pravim igru "snake", ali na drugi nacim. Ranije sam je pravio iscrtavanjem niza slika, a sad hocu da uradim istu stvar uz pomoc StringGrida/DrawGrida zbog manjeg koda i lakseg pravljenja nivoa. Dakle ista slika ce trebati da se postavlja na vise mesta, a da se brise sa drugih... E, sad, kad bi sve slike ucitao na pocetku, to i ne bi bilo bas prakticno. Ili se varam ? Na pamet mi je prvo pala ideja da menjam vrednosti za ACol i ARow, ali mi nije uspelo. Any idea ? [ Toyo @ 06.07.2005. 17:00 ] @
Pazi, kada se iscrtava grid, ta funkcija se poziva za svaku celiju zasebno znaci onoliko puta koliko imas kolona * redova. Ako bi uklonio proveru za row i acol i samo iscrtao sliku, ta slika bi bila u svim celijama.
U cells[arow, acol] drzi indekse slika koje treba da se iscrtaju i onda ih iscrtavas sa: Draw(rect.left, rect.top, image[strtoint(cells[arow,acol])].Picture.graphic); gde je image niz slika, ili mozes da koristis tpicturecollection. Nadam se da si shvatio. :) [ Srki_82 @ 06.07.2005. 17:03 ] @
Zasto komplikujes sa gridovima!?
Dovoljna ti je jedna matrica 50x50 (ili koliko vec hoces) u kojoj ces cuvati sta se nalazi u kom polju i posla samo na osnovu tih vrednosti iscrtas sliku na TBitmap.Canvas. To ce ti biti backbuffer i kad god je potrebno samo ga "pljunes" na formu ili neku komponentu (TImage, TPanel, TButton...) gde zelis da se vidi ta slika. Pogledaj moj primer http://www.elitesecurity.org/poruka/547708 ili http://www.elitesecurity.org/poruka/540770 [ Cyber X @ 11.07.2005. 10:38 ] @
Ok, hvala svima, mislim da cu uraditi sta sam zamislio.
Jos nisam radio sa matricama, ali cu uspeti da izvucem nesto iz Srkijevih programa :) Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|