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."