動作環境
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で直るかどうか。