Einzelnen Beitrag anzeigen

static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#6

Re: TImage.Picture Referenz (!) auf TPicture?

  Alt 25. Apr 2006, 12:58
Hallo,

eine prüfung mit Picture.Graphic.Empty ist nicht sinvoll, denn Graphic ist unter umständen nil wenn nicht schon was drin gesteckt hat. TGraphic auch ist nur eine abstakte klasse für "die eigentlich Bilder", welche ja TBitmap, TJPEGImage, TPNGObject etc. sind.

z.B. würde das hier nicht funktionieren:

Delphi-Quellcode:
var
  Pic:TPicture;
begin
  Pic:=TPicture.Create;
  if Pic.Graphic.Empty then Pic.Graphic.LoadFromFile('default.bmp');
  Pic.Free;
end;
aber so:

Delphi-Quellcode:
var
  Pic:TPicture;
begin
  Pic:=TPicture.Create;
  Pic.Graphic:=TBitmap.Create;
  if Pic.Graphic.Empty then Pic.Graphic.LoadFromFile('default.bmp');
  Pic.Free;
end;
das eigentlich laden der Bilder sollte auch eigentlich von TPicture übernommen werden mit LoadFromFile denn es übernimmt die verwaltung von Graphic.

Und Graphic.Assign ist auch nicht sinvoll wenn du mehrere Typen von Bildern verwendest, z.B. würde ein Assign in die hose gehen wenn dein Graphic von typ TBitmap ist und du aber nun ein TPNGObject hast...

Picture.Assign(AnderesPicture) wäre das richtige.
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat