喫茶XRAYトップページ

[スレッド全体
]

[8581] Re:印刷プレビュー制御コンポーネントにて返信 削除
2015/3/13 (金) 18:00:32 おかぽん
▼ Saraさん

マスターではありませんが・・・

procedure TCustomplPrev.BeginDoc;

  FPrintFromPage := 1;             //印刷開始頁も1
  //以下の一行追加
  if (FCanvas <> nil) and (FCanvas is TMetafileCanvas) then FCanvas.Free;
  CreateMetaCanvas(True);          //メタキャンバスの作成
  ScaleInitialize(FCanvas, False); //キャンバスのスケーリング

とりあえず、これでメモリーリークなくなります。

ProcName を使ったときと使わないときの ShowModalのタイミングでしょうかね。

[8582] Re2:印刷プレビュー制御コンポーネントにて返信 削除
2015/3/13 (金) 19:54:19 Mr.XRAY
▼ おかぽんさん,ありがとうございます.

> ProcName を使ったときと使わないときの ShowModalのタイミングでしょうかね。


いや,これは完全にバグですね.
解放忘れですからね.
おかぽんさんって,やさしいんですね (涙)

コンポの修正は,ちょっと考えがあって,後日にします.
プリンタ設定コンポの指摘もありましたので,とりあえず,
ヒント・バグの方への記事としておきます.


[8584] Re3:印刷プレビュー制御コンポーネントにて返信 削除
2015/3/13 (金) 23:00:39 Sara
▼ Mr.XRAYさん
▼ おかぽんさん
 
> > ProcName を使ったときと使わないときの ShowModalのタイミングでしょうかね。
>
>
> いや,これは完全にバグですね.
> 解放忘れですからね.
> おかぽんさんって,やさしいんですね (涙)
>
> コンポの修正は,ちょっと考えがあって,後日にします.
> プリンタ設定コンポの指摘もありましたので,とりあえず,
> ヒント・バグの方への記事としておきます.


了解しました〜ありがとうございます。(^^)


[8585] Re2:印刷プレビュー制御コンポーネントにて返信 削除
2015/3/14 (土) 08:28:20 たてぐや
▼ おかぽんさん

> とりあえず、これでメモリーリークなくなります。

 なるほど、今まで私が作ってきたプログラムでも出ていた可能性があるんで
すね。表面化しなかっただけのことか。むむむ。


[8586] Re3:印刷プレビュー制御コンポーネントにて返信 削除
2015/3/14 (土) 21:58:39 おかぽん
▼ たてぐやさん
>  なるほど、今まで私が作ってきたプログラムでも出ていた可能性があるんで
> すね。表面化しなかっただけのことか。むむむ。


Saraさんではありませんが、plPrev付属のTEST内の04_PageCountでテストした
だけで、とりあえず、メモリーリークの解消を優先したので、十分な動作確認は
お願いしたいです。

ちなみに、ProcNameを使ってplPrev1.ShowModal すると、プレビューフォームが
表示される時点で、メタファイルキャンバスを作成しているようです。
これが開放忘れになっているだけのようなので、ProcNameを使用しない場合は、
発生しないのではないのでしょうか。

ProcName を使用しない場合、plPrev 側で ShowModal しますが、その時点では、
印刷データとしてのメタファイルキャンバスが存在している状態のため、
追加でメタファイルキャンバスを作成しない。

・・・と思われますので、ProcName を使用しなければ、大丈夫だと思います。
このへんが、「ShowModalのタイミングでしょうかね」とコメントした理由です。

一応、追記ということで。

[8587] Re4:印刷プレビュー制御コンポーネントにて返信 削除
2015/3/15 (日) 15:29:59 たてぐや
▼ おかぽんさん

> ・・・と思われますので、ProcName を使用しなければ、大丈夫だと思います。
> このへんが、「ShowModalのタイミングでしょうかね」とコメントした理由です。


 当該プログラムはすでに退社した会社に置いてきています。在社中に不具合
が出ていなかったので、大丈夫なんでしょう。詳しい情報ありがとうございま
す。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82