Nochmals:
Delphi-Quellcode:
property Bitmap: TBitmap read GetBitmap write SetBitmap;
property Graphic: TGraphic read FGraphic write SetGraphic;
procedure TPicture.ForceType(GraphicType: TGraphicClass);
begin
if not (Graphic is GraphicType) then
begin
FGraphic.Free;
FGraphic := nil;
FGraphic := GraphicType.Create;
FGraphic.OnChange := Changed;
FGraphic.OnProgress := Progress;
Changed(Self);
end;
end;
function TPicture.GetBitmap: TBitmap;
begin
ForceType(TBitmap); // ändert den Typ, aber kopiert nicht den Bildinhalt
Result := TBitmap(Graphic);
end;
.Bitmap greift intern auf .Graphic zu, es bringt also nichts, auf beides mit dem selben Befehl zuzugreifen.
Mit dem Unterschied, daß die der Zugriff auf .Bitmap das Bild zerstören kann, wenn kein TBitmap enthalten ist.
Delphi-Quellcode:
if not Assigned(Picture.Graphic) then
// nichts drin
Ansonsten kannst du noch prüfen, wenn doch ein "Bild" vorhanden ist ob Pixel vorhanden sind (isEmpty = in X und/oder Y nur 0 Pixel) und ob das "Bild" ein "Bild" enthält (z.B. all Pixel in nur einer Farbe ... z.B. Schwarz oder Weiß)