質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++Builder

C++Builderは、C/C++を用いてアプリ開発できる統合開発環境 (IDE) 。DelphiのC++版です。コンポーネントによるビジュアル開発、高機能なコードエディターなどで生産性の高い開発ができます。

Q&A

0回答

467閲覧

TGraphicのEqualsメソッドを使うには

suenaga

総合スコア0

C++Builder

C++Builderは、C/C++を用いてアプリ開発できる統合開発環境 (IDE) 。DelphiのC++版です。コンポーネントによるビジュアル開発、高機能なコードエディターなどで生産性の高い開発ができます。

0グッド

0クリップ

投稿2021/05/09 08:48

前提・実現したいこと

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メソッドを使えるようにするにはどのような対処が必要か、ご存じの方アドバイスいただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問