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