Thema: Delphi canvas probleme, oder so

Einzelnen Beitrag anzeigen

Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#9

Re: canvas probleme, oder so

  Alt 31. Aug 2007, 14:31
So, ich hab das bei mir jetzt so implementiert. Ist das unschön? oder kann man das so lassen?

Delphi-Quellcode:
// Das Handle wird nicht benötigt.
// Durch diese Methode verlangt man vom Objekt mal in den Icon-Header zu
// schauen ansonsten könnte man die reale Icongrösse nicht erruieren bevor
// es das erste mal gezeichnet wird.

procedure TEButton.DrawPicture;
begin
  if (FPicture <> nil) then
  begin
    if (FPicture.Graphic is TIcon) then FPicture.Icon.handle;
    Canvas.Draw((Width - FPicture.Width) div 2,(Height - FPicture.Height) div 2 ,FPicture.Graphic);
  end;
end;

procedure TEButton.DrawPictureOver;
begin
 if (FPictureUseOnlyOne) then
 begin
  if (FPicture <> nil) then
  begin
   if (FPicture.Graphic is TIcon) then FPicture.Icon.handle;
   Canvas.Draw((Width - FPicture.Width) div 2,(Height - FPicture.Height) div 2 ,FPicture.Graphic);
  end;
 end
 else
 begin
  if (FPictureOver <> nil) then
  begin
   if (FPictureOver.Graphic is TIcon) then FPictureOver.Icon.handle;
   Canvas.Draw((Width - FPictureOver.Width) div 2,(Height - FPictureOver.Height) div 2 ,FPictureOver.Graphic);
  end;
 end;
end;

procedure TEButton.DrawPictureDown;
begin
 if (FPictureUseOnlyOne) then
 begin
  if (FPicture <> nil) then
  begin
   if (FPicture.Graphic is TIcon) then FPicture.Icon.handle;
   Canvas.Draw((Width - FPicture.Width) div 2,(Height - FPicture.Height) div 2 ,FPicture.Graphic);
  end;
 end
 else
 begin
  if (FPictureDown <> nil) then
  begin
   if (FPictureDown.Graphic is TIcon) then FPicture.Icon.handle;
   Canvas.Draw((Width - FPictureDown.Width) div 2,(Height - FPictureDown.Height) div 2 ,FPictureDown.Graphic);
  end;
 end;
end;

end.
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat