掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
グラフィックコントロールの問題 (ID:17233)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
回答ありがとうございます。まず、コードの内容に不備があったので、訂正します。 unit cmp; interface uses Controls, Classes; type TChildControl = class(TGraphicControl) protected procedure Paint; override; end; TSampleControl = class(TGraphicControl) protected FChildControl: TChildControl; procedure Paint; override; procedure SetParent(AParent: TWinControl); override; procedure SetChildControl(Value: TChildControl); public constructor Create(AOwner: TComponent); override; published property ChildControl: TChildControl read FChildControl write SetChildControl; end; procedure Register; implementation procedure Register; begin RegisterComponents('sample', [TSampleControl]); end; procedure TChildControl.Paint; begin inherited; Canvas.Rectangle(ClientRect); end; constructor TSampleControl.Create(AOwner: TComponent); begin inherited; FChildControl:= TChildControl.Create(Self); FChildControl.Name:= 'ChildControl'; FChildControl.Width:= 100; FChildControl.Height:= 100; end; procedure TSampleControl.Paint; begin inherited; Canvas.Rectangle(ClientRect); end; procedure TSampleControl.SetParent(AParent: TWinControl); begin inherited; if Assigned(FChildControl) then begin FChildControl.Parent:= AParent; FChildControl.Visible:= True; end; end; procedure TSampleControl.SetChildControl(Value: TChildControl); begin FChildControl:= Value; end; end. これが全コードです。 > インスタンスを入れ替えしたいのか、ChildControlの設定をコピーしたいのか、 ChildControl の設定をコピーしたい方です。 > フォームに貼り付けて、実行→即終了でもエラーがでますか? > エラーの内容は?アクセス違反? はい。エラーの内容は特権命令違反のようです。 「FChildControl.Parent:= AParent;」をコメントアウトするとエラーは発生しなくなるので、これに何らかの原因があるのだと思います。 ただ、コメントアウトしても直接的な解決にはならないので、これ以外のエラー回避の方法を教えていただけると幸いです。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.