Rysowanie w komórce StringGrid

0

Witam

Proszę o pomoc w sprawie rysowania w danej komórce komponentu StringGrid.
Stoję na poziomie rysowania po komponencie...

w DrawCell komponentu StringGrid mam taki kod:

var
  temp : TJPEGImage;
Begin
  temp : TJPEGImage.Create;
  temp.LoadFromFile('obrazek.jpg');
  StringGrid1.Canvas.Draw(Rect.Top, Rect.Left, temp);
 

Tylko ze ja to mam porozwalane po całym komponencie a chce żeby ten obrazek wyświetlał się w konkretnej komórce...
Nie mogę sobie z tym poradzić... Może ktos wie jak rozwiązać problem?? Za pomoc wielkie dzięki :)
Pozdrawiam

0

ACol i ARow - nic Ci to nie mówi??

0

Mówi mówi... :)
No ale nie do końca wiem jak mam to wykorzystać żeby obrazek był tylko w 1 komórce nie rozlewając się na inne.

0

OK mam! :D
Może komuś się przyda

var
  temp : TJPEGImage;
Begin
  temp : TJPEGImage.Create;
  temp.LoadFromFile('obrazek.jpg');
  StringGrid1.Canvas.StretchDraw(StringGrid1.CellRect(1,1), temp);
  temp.free
 

Rysuje dany obrazek w komórce 1,1
Dzięki za pomoc :)

0
if (ACol = 1) and (ARow = 1) then
begin
  ...
  Canvas.CopyRect(Rect, temp.Canvas, Rect(0, 0, temp.Width, temp.Height));
end;
0

przy kazdym rysowaniu tworzysz nowa zmienna i ladujesz obrazek z pliku???

0

Ładuje obrazek
Rysuje
Zwalniam zmienną

za każdym razem ta sama zmienna "temp"

0
noroo napisał(a)

Ładuje obrazek
Rysuje
Zwalniam zmienną

za każdym razem ta sama zmienna "temp"

to ze to jest ta sama zmienna (chociaz nie jest) nic nie zmienia. wciaz niepotrzebnie tworzysz ja i zwalniasz.
zmienna powinna byc globalna - utworzona w onCreate (tam tez powinienes zaladowac obrazek) a zwolniona w onDestroy.
dodatkowo jesli obrazek bylby duzy powinienes wstepnie go zmniejszyc do jakis sensownych rozmiarow.

1 użytkowników online, w tym zalogowanych: 0, gości: 1