Re: wie temoräres Canvas erstrllen und nutzen?
Hi,
@himitsu: Sollte gehen, aber ich würde aus einem Bauchgefühl heraus das gecastete Canvas bevorzugen. Zitat:
Da ich zur Bescheidenheit erzogen wurde, werd ich sonst selbst gleich :oops: Zitat:
:dp: Zitat:
Gruß Assertor |
Re: wie temoräres Canvas erstrllen und nutzen?
Zitat:
Vielleicht haben wir zusammen auf der "Cap San Diego" ja mal Gelegenheit für ein "echtes" :cheers: |
Re: wie temoräres Canvas erstrllen und nutzen?
hab's doch über das Canvas gelöst ... hatte fast vergessen, daß ich an einer Stelle das Canvas weitergeb :oops:
es gibt zumindestens keine Exception mehr :thumb: ob die Berechnung dann stimmt werd ich ja bald erfahren ... muß aber erst noch die Anzeigeprozedur wieder instandsetzen.
Delphi-Quellcode:
Danker erstmal.
Canvas := TCanvas.Create;
Try Canvas.Handle := GetDC(GetDesktopWindow); ResizeTextComp(Comp, Canvas, 1, 1.0); //ReleaseDC(Canvas.Handle); Finally Canvas.Free; End; da fallen einem fast die Schuppen aus den Haaren, wenn man sieht, wie einfach es sein kann und man einfach nicht sieht :angel: Das Desktop-Handle muß ich dann nicht extra noch freigeben ... dürfte doch hoffentlich vom Canvas erledigt werden? :gruebel: |
Re: wie temoräres Canvas erstrllen und nutzen?
Hi,
Zitat:
Gruß Assertor |
Re: wie temoräres Canvas erstrllen und nutzen?
Du musst das Desktop-Handle selbst freigeben! Das Canvas kann das gar nicht automatisch tun, da es weder über die Besitzverhältnisse des HDC informiert ist noch über das Fensterhandle, welches zur Freigabe benötigt wird.
|
Re: wie temoräres Canvas erstrllen und nutzen?
Hab auch grad gemerkt, TCanvas besitzt nichtmal Destroy/Free-Methoden, um da überhaupt was beim Löschen freigeben zu können. :shock:
Das Ergebnis sieht nun so aus
Code:
Und laut Taskmanager bleiben die GDI-Objecte auch konstant (ohne ReleaseDC stiegen die wirklich an)
Canvas := TCanvas.Create;
[b]Try[/b] Canvas.Handle := GetDC(GetDesktopWindow); [color=gray]ResizeTextComp(Comp, Canvas, 1, 1.0);[/color] ReleaseDC(GetDesktopWindow, Canvas.Handle); [b]Finally[/b] Canvas.Free; [b]End[/b]; also Danke nochmal an alle :love: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz