C++ Builder XE4 > Assign() > Error: TShapeをTShapeに代入することはできません。 > overrideして使う?
動作環境
C++ Builder XE4
試そうとしたこと
- TShapeが2つある
- 片方のTShapeからもう片方へプロパティをコピー
- Assign()というのがあるようだ
-
TPersistent.Assign Method
- > Copies the contents of another, similar object.
-
TPersistent.Assign Method
Assign()を使ってみよう。
実装
Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Shape2->Assign(Shape1);
}
//---------------------------------------------------------------------------
動作させてみた
関連情報
-
[Delphi]Assign使ってますか(1)
- @ K2さんの雑記
情報感謝です。
VCLのTPersistentクラスには、Assignというメソッドがpublicで宣言されている。この中身をそのまま使うと例外が上がるだけである。よってTPersistent継承クラスを作った場合は、Assign*1をoverrideして、再定義する。
上記のエラーはoverrideで直るかどうか。
Author And Source
この問題について(C++ Builder XE4 > Assign() > Error: TShapeをTShapeに代入することはできません。 > overrideして使う?), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/65e6f3745c39cadd4616著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .