Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.080 Beiträge
 
Delphi 12 Athens
 
#8

AW: feststellen ob TImage/TPicture leer ist

  Alt 2. Aug 2012, 19:55
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ß)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat