Vielen Dank! Jetzt klappt es !!!
TBitmap.Canvas.Draw funktioniert unter Linux nicht???
-
MmVisual
- Beiträge: 1642
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TBitmap.Canvas.Draw funktioniert unter Linux nicht???
@theo
Vielen Dank! Jetzt klappt es !!!

Vielen Dank! Jetzt klappt es !!!
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
MmVisual
- Beiträge: 1642
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TBitmap.Canvas.Draw funktioniert unter Linux nicht???
@ theo, ich habe mich zu früh gefreut, nun ist das Bild zwar nicht im TImage schwarz, dafür noch im TDBGrid:
Jetzt muss ich bloß noch heraus finden warum das Transparent beim TImage funktioniert und beim TBitmap nicht. Ist wohl doch ein Lazarus-Linux-Bug.
Hier der Code wie ich das Bild in das TDBGrid male:
Jetzt muss ich bloß noch heraus finden warum das Transparent beim TImage funktioniert und beim TBitmap nicht. Ist wohl doch ein Lazarus-Linux-Bug.
Hier der Code wie ich das Bild in das TDBGrid male:
Code: Alles auswählen
OnDrawColumnCell
If Not Column.Field.DataSet.IsEmpty And Assigned(lstRating) Then
Begin
TDbGrid(Sender).Canvas.Brush.Color := clWindow;
if gdRowHighlight in State then
TDbGrid(Sender).Canvas.Brush.Color :=
ColorToRGB(TDbGrid(Sender).Canvas.Brush.Color) xor $1F1F1F;
SetGridDrawColorSort(Sender, Column, State);
TDBGrid(Sender).Canvas.FillRect(Rect);
rct := Rect;
If Not Column.Field.IsNull Then
Begin
i := (lstRating.Count Div 2) + Column.Field.AsInteger - 1; // Umrechnung +/- auf Listenindex
bm := TBitmap(lstRating[i]);
if rct.Right - rct.Left > bm.Width Then
rct.Right := rct.Left + bm.Width;
If rct.Bottom - rct.Top > bm.Height Then // Feld ist höher als das Bitmap, Mittig zeichnen
Begin
rct.Top := (((rct.Bottom - rct.Top) Div 2) + rct.Top) - (bm.Height Div 2);
rct.Bottom := rct.Top + bm.Height;
end;
TDbGrid(Sender).Canvas.StretchDraw(rct, bm)
End;
End;
End;- Dateianhänge
-
- Bild2.png (6.73 KiB) 943 mal betrachtet
Zuletzt geändert von MmVisual am Sa 18. Mai 2013, 21:04, insgesamt 1-mal geändert.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
MmVisual
- Beiträge: 1642
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: TBitmap.Canvas.Draw funktioniert unter Linux nicht???
Kann es sein, dass Canvas.Draw() und Canvas.Stretchdraw() unter Linux den Parameter Transparent und TransparentColor einfach ignorieren 
EleLa - Elektronik Lagerverwaltung - www.elela.de