![]() |
Width einer Canvas auslesen
Das klingt zwar etwas komisch, aber genau dass ist gerade mein Problem. Ich will an eine Procedure in einer Klasse eine Canvas übergeben. Jetzt brauche ich aber in dieser Procedure Infos über Höhe und Breite der Canvas. Nur leider hat TCanvas diese Eigenschaften nicht... Kann ich die halbwegs einfach auslesen, oder muss ich diese Werte noch zusätzlich als Parameter übergeben? :gruebel:
Vielen Dank |
Re: Width einer Canvas auslesen
Hab genau das gleiche Problem,
bis jetzt hab ich immer ein TImage-Objekt verwendet, und dann auf die Canvas-Instanz zugegriffen, eine bessere Lösung würde mich sehr interessieren. Danke :-D |
Re: Width einer Canvas auslesen
Moin!
Du musst die Abmasse mit übergeben. MfG Muetze1 |
Re: Width einer Canvas auslesen
Das ist komisch :shock: Gibt's da auch eine sinnvolle Erklärung dafür, dass die Canvas nicht selbst weiss, wie groß sie ist?
Wenn ich dann sowas aufrufen will
Delphi-Quellcode:
dann wunder ich mich schon, dass es da nichts einfacheres gibt. :gruebel:
ZeichnenAuf(image1.canvas,image1.width,image1.height)
|
Re: Width einer Canvas auslesen
TCanvas hat ein Handle vom Typ DC. Anhand dieses Handle kannst du mit WindowFromDC das dazu gehörige Fensterhandle ermitteln. Wenn du das Fensterhanlde hast, kannst du auch die Maße bestimmen.
Außerdem würde ich TControlCanvas benutzen und dieses an deine Funktion/Prozedur weiterleiten. |
Re: Width einer Canvas auslesen
du könntest dir mit der funktion
![]() Es gibt zwar laut MSDN einige einschränkungen, aber für den anfang funktionierts z.B. mit Form1.Canvas janz jut.
Delphi-Quellcode:
function CanvasWidth(Canvas: TCanvas): Integer;
var R: TRect; begin GetClipBox(Canvas.Handle,R); Result := R.Right; end; function CanvasHeight(Canvas: TCanvas): Integer; var R: TRect; begin GetClipBox(Canvas.Handle,R); Result := R.Bottom; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 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