名前 題名 ▼ Mr.XRAYさん > > これは,実際には次のような質問内容です. > > たまたまポインタ関係の記事を書いたもんですから思い出して・・・ > 型キャストは「型変換」ではないです > 例えは以下のコードは,このままではエラーにはなりません. > しかし,こういうことは実際にはできません. > > procedure TForm1.Button1Click(Sender: TObject); > var > LBitmap : TBitmap; > begin > LBitmap := TBitmap.Create; > try > LBitmap := TBitmap(Button1); > Image1.Canvas.Draw(0, 0, LBitmap); > finally > FreeAndNil(LBitmap); > end; > end; > > エラーが発生しない上のコードのままでも問題があります. > LBitmap が使用するメモリのサイズ (バイト数) が Button1 が使用するバイト数より多い場合, > メモリを解放してしまっていますから,そこに何かのデータがあったかも知れません. > 興味があれば LBitmap のプロパティやメソッドを実行してみてください. > > 以下もエラーが発生しないコードですが,問題ありの例です. > > http://mrxray.on.coocan.jp/Delphi/Others/ArrayRangeCheck.htm#list5 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link