▼ Mr.XRAYさん
マッピングを使ってSourceMetaからDestMetaを切り取った場合、
DestMetaは
Image1.AutoSize := True;
Image1.Picture.Assign(DestMeta);
の方法でしか正しく表示しないようです。
特に、Image1.AutoSize := True; は大切で、こうすることにより
余計な部分の表示をクリッピングして(隠して)いるようです。
Image1.Canvas.Draw(20,20,DestMeta); とか
PrintRect := Bounds(20,20,DestMeta.Width,DestMeta.Height);
Image1.Canvas.StretchDraw(PrintRect,DestMeta) とかすると、
DestMetaのサイズ以外の余白部分まで前後左右のデータがImage1に
表示されてしまいます。
例えば、1ページが50行で前後にいくらかの余白を持たせる場合、
2ページ目を表示すると、べたっとデータで埋め尽くされます。
Image1の上端------------------------
49行目のデータ (本来は上の余白)
50行目のデータ ( 〃 )
51行目のデータ ここからが2ページ目の内容
・
・
100行目のデータ ここまでが2ページ目の内容
101行目のデータ (本来は下の余白)
102行目のデータ ( 〃 )
Image1の下端------------------------
のように余白部分にまでデータが書き込まれてしまうのです。
これは、メタファイルとはこういうものなんだと諦めるしか
ないようです。(T_T)
|