![]() |
Koordinate in TImage32 abh. vom Bild finden
Hallo,
Ich habe ein TImage32, in dem beliebige Bilder angezeigt werden. Ich habe das Bild skaliert angezeigt (also so, dass die Seitenverhältnisse konstant bleiben zum Originalbild), das Bild selbst hat als Align := alClient, das Bitmapalign ist baCenter. Links und Rechts bleibt bei mir also noch reichlich Platz. Ich brauche jetzt einen Punkt, der 5 Pixel neben der Grafik liegt. Das Bild kann ja verschiedene Abmessungen haben. Ich habe sowas versucht: Delphi-Quellcode: markieren x := (Image.Width div 2) + (Image.Bitmap.Width div 2) + 5; Das funktioniert so aber nicht. Hat jemand dazu einen Hinweis? |
Re: Koordinate in TImage32 abh. vom Bild finden
Zitat:
|
Re: Koordinate in TImage32 abh. vom Bild finden
Zitat:
|
Re: Koordinate in TImage32 abh. vom Bild finden
Aha, ein Label also. Das wäre z.B. eine wichtige Information gewesen, die du in deinem 1. Beitrag aber verheimlichst. Nimm ein TStaticText. TLabel ist nur ein GraphicControl und hat damit keinen eigenen Canvas, und zeichnet somit auf den Canvas seines Parents: Das Formular. Da TImage32 aber einen eigenen Canvas hat der über dem Formular gezeichnet wird, überdeckt dies dein Label. Die Formel selber ist völlig korrekt.
Ich hoffe du verstehst jetzt, dass es durchaus wichtig ist wenigstens ein paar Randinformationen zu liefern. |
Re: Koordinate in TImage32 abh. vom Bild finden
Zitat:
stelle ich aber ein ein 3x3 Pixel Bild ein (wird genau so groß dargestellt wie das 500x500 Pixel Bild), dann ist das Label auf dem Bild (es wird hochskaliert) und das Label landet fast in der Mitte. Angenommen das TImage32 ist 1000 Pixel breit und 50 Pixel hoch, dann ergibt das laut der Formel, di ich benutze folgendes: x := (Image.Width div 2) + (Image.Bitmap.Width div 2) + 5; 500x500: x=755 3x3: x=506; x ist übrigens label.left. Im gegebenen Fall muss x in beiden Fällen gleich sein, da beide Bilder auf die gleiche Größe skaliert werden. Ich hoffe, ich konnte das Problem verdeutlichen. |
Re: Koordinate in TImage32 abh. vom Bild finden
Ich muss mich entschuldigen, ich hab den Teil mit der Skalierung nicht mit bedacht. Ein Blick in die GR32 Doku offenbart z.B. TImage32.GetPictureRect, was dir die Koordinaten des angezeigten Bildes zurückliefert. (Dokus sind toll ;))
edit: GetPictureSize wüde die skalierte Größe liefern, aber o.g. erspart dir sogar noch Rechnungen. |
Re: Koordinate in TImage32 abh. vom Bild finden
Zitat:
|
Re: Koordinate in TImage32 abh. vom Bild finden
Welche Version hast du von der G32? Ich hab die Online-Doku von
![]() Edit: Ich vermute sogar, dass beide Funktionen das selbe tun, und nur umbenannt wurde, da ja eigentlich eben nicht das Bitmap-Rect, sondern eben das skalierte Picture-Rect zurückgeliefert wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 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