Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Vykreslovaní obrazku ve StringGridu

OnDrawCell ti vraci primo rect pro vykreslovani a bunku, kterou vykreslujes.
Pises, ze texty vykreslovat umis, takze s tim problem neni.

Podobne veci se delaji opravdu pres ImageList. Takze obrazek misto toho, abys jej dal do TImage dej do ImageList ve velikosti, v jake jej chces vykreslovat. Predpokladejme, ze tam mas jen jeden obrazek.
Znovu opakuju, ze OnDrawcell ti vraci souradnice bunky ACol a ARow a ty musis vykreslovat jen prislusnou bunku!
Pak by to mohlo vypadat nejak takto (je to z hlavy, takze se omlouvam za pripadne chyby):

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
   Rect: TRect; State: TGridDrawState);
begin
   with TStringGrid(Sender) do
   begin
      Canvas.Brush.Color := clWindow;
      Canvas.FillRect(Rect);
      if (ACol=0) then
      begin
         if (StringGrid1.Cells[2, ARow]='1') then
            ImageList.1.Draw(Canvas, Rect, 0);
      end
      else
         Canvas.TextOut(Rect.Left+1, Rect.Top+1, Cells[ACol, ARow]);
   end;
end;

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny