AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

canvas probleme, oder so

Ein Thema von cherry · begonnen am 24. Aug 2007 · letzter Beitrag vom 3. Sep 2007
 
Benutzerbild von cherry
cherry

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

canvas probleme, oder so

  Alt 24. Aug 2007, 08:55
hi

ich habe ein kleines Problem mit meiner Komponente...
und zwar habe ich folgenden bug entdeckt, und weiss nicht an was es liegt, vielleicht könnt ihr mir weiterhelfen.
Die ganze Komponente findet ihr in unsererOpen Source Library.

Das Problem:

Wenn ich ein Icon in mein Button zeichne soll er in die mitte kommen. In den meisten Konstellationen funktioniert das auch einwandfrei, habe ich aber ein icon 16*16 auf einer Canvas 22*22, ist das Bild, gerade nachdem ich mein Programm starte nicht in der mitte. Sobald ich dann mit der Maus darüberfahre, geht es in die mitte und wird von diesem Moment an immer korrekt angezeigt. Bis ich das Programm wieder neu starte... mit Bildern und Icons ab 32*32 habe ich dieses Problem nie!

hier die Routinen die das Bild zeichnen, vielleicht fällt euch ja etwas auf, PS: ich verwende nur ein Bild, also
PictureUseOnlyOne := true!

Delphi-Quellcode:
procedure TEButton.DrawPicture;
begin
 if (FPicture <> nil) then
   Canvas.Draw((Width - FPicture.Graphic.Width) div 2,(Height - FPicture.Graphic.Height) div 2 ,FPicture.Graphic);
end;

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

procedure TEButton.DrawPictureDown;
begin
 if (FPictureUseOnlyOne) then
 begin
  if (FPicture <> nil) then
   Canvas.Draw((Width - FPicture.Graphic.Width) div 2,(Height - FPicture.Graphic.Height) div 2 ,FPicture.Graphic);
 end
 else
 begin
  if (FPictureDown <> nil) then
   Canvas.Draw((Width - FPictureDown.Graphic.Width) div 2,(Height - FPictureDown.Graphic.Height) div 2 ,FPictureDown.Graphic);
 end;
end;
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.
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