Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [gelöst] Wie die Größe eines TMetafileCanvas festlegen ? (https://www.delphipraxis.net/72820-%5Bgeloest%5D-wie-die-groesse-eines-tmetafilecanvas-festlegen.html)

kalmi01 7. Jul 2006 13:19


[gelöst] Wie die Größe eines TMetafileCanvas festlegen ?
 
Moin, moin,

wie kann ich die Größe eines TMetafileCanvas festlegen ?
Egal wie ich es anstelle, es kommt immer meine Desktopgröße raus.

so will es nicht:
Delphi-Quellcode:
WMF := TMetaFile.Create;
WMF.mmWidth := 2000;
WMF.mmHeigth := 2000;
Zeichnung := TMetaFileCanvas.Create(WMF, 0);
so auch nicht:
Delphi-Quellcode:
WMF := TMetaFile.Create;
WMF.mmWidth := 2000;
WMF.mmHeigth := 2000;
Zeichnung := TMetaFileCanvas.Create(WMF, WMF.Handle);
und auch das nicht:
Delphi-Quellcode:
drw := TPicture.Create;
drw.Metafile.MMHeight := 2000;
drw.Metafile.MMWidth := 2000;
WMF:= TMetaFile.Create;
Zeichnung := TMetaFileCanvas.Create(WMF, drw.Metafile.Handle);
so langsam bin ich am Verzweifeln.
Die Hilfe und die Forensuche haben mich nicht wirklich weiter gebracht.

marabu 7. Jul 2006 13:35

Re: Wie die Größe eines TMetafileCanvas festlegen ?
 
Hallo Michael,

deine beiden letzten Versuche sehen aus wie Verzweiflungstaten und dein erster Versuch ist es wert analysiert zu werden: Du erzeugst ein Metafile-Objekt und dimensionierst es 2000 * 2000. Anschließend erzeugst du ein passendes TMetaFileCanvas-Objekt, wobei du mit dem device context handle 0 signalisierst, dass du den context des desktop windows verwenden möchtest. Der Konstruktor dimensioniert dabei dein Metafile entsprechend neu.

Probiere dochmal deine Dimensionierung zum richtigen Zeitpunkt vorzunehmen. Keine Garantie auf Erfolg.

Grüße vom marabu

kalmi01 7. Jul 2006 13:46

Re: Wie die Größe eines TMetafileCanvas festlegen ?
 
Hallo marabu,
Zitat:

deine beiden letzten Versuche sehen aus wie Verzweiflungstaten
Nicht wirklich, eigentlich sind sie nur der Versuch ein Handle mit einer passenden Größe zu übergeben.
Zitat:

Du erzeugst ein Metafile-Objekt und dimensionierst es 2000 * 2000. Anschließend erzeugst du ein passendes TMetaFileCanvas-Objekt, wobei du mit dem device context handle 0 signalisierst, dass du den context des desktop windows verwenden möchtest.
Und genau da liegt ja der Hund begraben.
Ich habe mit etlichen versch. Handles versucht eine passende Größe und entsprechenden ClipRect zu übergeben, aber immer mit dem Erfolg des ersten Versuchs.

jakobwenzel 7. Jul 2006 14:07

Re: Wie die Größe eines TMetafileCanvas festlegen ?
 
IMHo meint marabu, dass du das schreiben sollst:
Delphi-Quellcode:
WMF := TMetaFile.Create;
Zeichnung := TMetaFileCanvas.Create(WMF, 0);
WMF.mmWidth := 2000;
WMF.mmHeigth := 2000;

kalmi01 7. Jul 2006 14:25

[gelöst] Wie die Größe eines TMetafileCanvas festlegen ?
 
so gehts:
Delphi-Quellcode:
WMF := TPicture.Create;    <=== Das
WMF.Metafile.Width := 2000;
WMF.Metafile.Height := 2000;

Zeichnung := TMetaFileCanvas.Create(WMF.Metafile, 0); <=== und dann das
sind des Rätsels Lösung.

Zitat:

WMF := TMetaFile.Create;
Zeichnung := TMetaFileCanvas.Create(WMF, 0);
WMF.mmWidth := 2000;
WMF.mmHeigth := 2000;
gehört zu einem der dutzende Fehlversuche.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 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