Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi canvas probleme, oder so (https://www.delphipraxis.net/98271-canvas-probleme-oder-so.html)

cherry 3. Sep 2007 06:57

Re: canvas probleme, oder so
 
OOps.. Ok danke schon mal. Ich habe aber auch noch etwas anderes damit gemeint, und zwar ob das der richtige Zeitpunkt ist
das Handle abzufragen, oder ob ihr das woanders machen würdet. Ich habs einfachheitshalber in diesen Routinen gemacht, damit wenn ich die Bilder während Laufzeit ändere auch hier die richtigen Icongrössen verwendet werden. könnte ich aber auch bei den Propertys z.B. SetPictureOver usw. machen. Oder ist das hier so in Ordnung?

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
 DrawPicture
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
 DrawPicture
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.
Naja klappt auf jedenfall...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz