Zitat von
cherry:
tatsache?
wie hast du das rausbekommen? hast du mein beispiel nachkonstruiert und die Komponente runtergeladen?
Jep
Zitat von
cherry:
ich hab dasselbe icon in ein jpg umgewandelt. -> Das Problem besteht nur bei Icons!
Ich denke es liegt vielleicht daran das Standard Icons 32*32 sind, und er beim ersten ausrechnen
der canvas koordinaten die standard grössen statt der realen grösse verwendet.
Jep
Er nimmt zu Anfang die Standardgrößen des Systems (
getsystemmetrics)
Das Zuweisen eines Icons bewirkt ja nur ein Hin- und Herschieben von einem Stream (urspr. FileStream der Icondatei). Der Header (beim Icon) wird nur ausgewertet, wenn das Icon das erste mal gezeichnet wird. Dies geschieht über die Methode TIcon.Handleneeded --> ReadIcon. Deswegen sind nach dem ersten Draw die Angaben richtig.
Demnach musst du dir nur ersatzweise das
Handle besorgen "Button.Picture.Icon.Handle" oder den Stream selber auswerten ( Byte 7 und 8 )
Edit: "8 Klammer zu" wer denkt schon jedes mal daran 8)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.