お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"TBitmap.Dormantのバグ対処"






 TBitmap.Dormantの処理にバグがあり、場合によってはビットマップが
失われてしまうことがあります(D3.1, D4共)。例えば以下のコードを試
してみてください。

    Bitmap := TBitmap.Create;
    Bitmap.LoadFromFile(OpenDialog1.Filename);
    Bitmap.Canvas;
    Bitmap.Dormant;
    Bitmap.Canvas.Handle;
    ShowMessage(IntToStr(Bitmap.Handle));

  最後のShowMessageでは0が表示されます。このバグを避けるためには、
Dormantを行った後、何かを行う前にBitmap.Handleを参照すると良いよう
です。

    ....
    Bitmap.Dormant;
    Bitmap.Handle;        // Dormant後は何はともあれこれを!
    Bitmap.Canvas.Handle;
    ....

 おそらくTBitmap.FreeImageの処理に問題があるものと思われますが、よ
くわからないので修正例を示すのはやめておこうと思います。

                             98/11/24(火) ytm PAF03212@niftyserve.or.jp

Original document by ytm             氏 ID:(PAF03212)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum