前提・実現したいこと
C++Builder 10.3 Community Editionをインストールし、Webの情報を参考にプログラミングを学んでいるものです。
現在、画像の表示や保存、整理などを行うソフトを作っています。
指定のフォルダ内の複数の画像で、同じ画像は削除する処理を実装したいと思い、フォームに
以下のコンポーネントを置きました。
- 3つのボタンButton1,Button2
- 1つのOpenPictureDialog
- 2つのImageコンポーネントImage1,2
- 1つのMemoコンポーネント
プログラムの構成は大きく2つ。
(1)Button1のクリックでImage1に画像を読み込む(Button2でImage2に画像も同様に読み込む)
void __fastcall TForm1::Button1Click(TObject *Sender) { if (OpenPictureDialog1->Execute()) { Image1->Picture->LoadFromFile( OpenPictureDialog1->FileName); } }
(2)そしてButton3のクリックで、Image1,2に読み込んだ画像の比較を行って
比較の結果をMemoコンポーネントに表示する。
void __fastcall TForm1::Button3Click(TObject *Sender) { if (Image1->Picture->Graphic->Equals(Image2->Picture->Graphic)) { Memo1->Lines->Add("Same Picture"); } else { Memo1->Lines->Add("different Picture"); } }
発生している問題・エラーメッセージ
上記を実行すると、
[bcc32c エラー] Unit1.cpp(47): 'Equals' is a protected member of 'Vcl::Graphics::TGraphic' Vcl.Graphics.hpp(685): declared protected here
このようなエラーが発生します。Equalsメソッドは、TGraphicのProtectedメンバーということが問題のようですが、Equalsメソッドを使えるようにするにはどのような対処が必要か、ご存じの方アドバイスいただければ幸いです。
あなたの回答
tips
プレビュー