Delphi Tips 
-----------------------------

0058  D1   D2   D3   D4   D5   D6   D7   3.1   95   98    作成: 1999/02/08 osamu rev 1.1
   B1   B3   B4   B5   B6   B7   NT3   NT4   2K   XP  更新: 1999/02/08 osamu 編集
TBitmap の Width/Height に 0 を代入すると例外が発生する

TBitmap のバグか仕様か以下のようなコードで例外が発生する。

void __fastcall TClass1::Method1( void )
{
    Graphics::TBitmap *Bmp;

    Bmp = new Graphics::TBitmap();
    Bmp->LoadFromFile( "BMPファイル名" );
    Bmp->Width = 0;  // <-ここでEOutOfResource例外が発生
    delete Bmp;
}

このコードは BCB1 では問題なかったが BCB3 では例外が発生する。
内部ビットマップ形式が DDB から DIB に変わったことが関連している。

  Bmp->Width = 0;

の前に、

  Bmp->ReleaseHandle();

とすることで回避が可能。
参照: [builder:4889] <画像> <バグ>

[新規作成] [最新の情報に更新]

How To
Lounge
KeyWords


Tips
Delphi
Home
Osamu Takeuchi osamu@big.or.jp