Hallo liebe Lazarus-Freunde,
für mein Spiel welches ich in Lazarus programmiere, möchte ich eine TDrawGrid verwenden.
Jedoch finde ich keine Möglichkeit Bilder (png/jpg/bmp/gif) in eine Zelle in der Tabelle einzubinden.
Die Bilder müssten nichtmal skaliert werden.
Kennt sich jemand mit so etwas aus?
[Problem] Bild-Datei in StringGrid einfügen
-
- Beiträge: 1
- Registriert: Di 25. Feb 2014, 13:45
Re: [Problem] Bild-Datei in StringGrid einfügen
Du musst in dem OnDrawCell-Event das Bild selber auf den Canvas des Grid malen, etwa so (hier wird das Bitmap aus einer ImageList entnommen):
Code: Alles auswählen
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
aRect: TRect; aState: TGridDrawState);
var
bmp: TBitmap;
imgindex: Integer;
begin
if (ACol = 0) or (ARow = 0) then
exit;
bmp := TBitmap.Create;
try
imgIndex := ACol mod 2; // Bild-Index alternierend umschalten - nur als Beispiel...
ImageList1.GetBitmap(imgIndex, bmp);
DrawGrid1.Canvas.Draw(aRect.Left+2, aRect.Top+2, bmp);
finally
bmp.Free;
end;
end;