[ 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 !
[ 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 :)