プロパティにクラス型を設定した場合、セットされたことを認識するにはどうすればいいのでしょう?
言葉では伝えにくいので、ソースコードで。
TClassA = class
private
FMemberA: Integer;
public
property MemberA: Integer read FMemberA write FMemberA;
end;
TClassB = class
private
FMember: TClassA;
procedure SetMember(Value: TClassA);
public
constructor Create;override;
property Member: TClassA read FMember write SetMember;
end;
constructor TClassB.Create;
begin
FMember:=TClassA.Create;
end;
procedure TClassB.SetMember(Value: TClassA);
begin
FMember:=Value;
//<<したい処理>>
end;
とあって、
var Test:TClassB;
begin
Test:=TClassB.Create;
Test.Member.MemberA:=5;
・・・
としたとき、TClassBのメンバーであるMemberはクラス型であるため、SetMemberは呼び出されないと思うのですが、このときに上の「したい処理」の部分のように処理を実行するにはどうすればよいのでしょうか?
イメージでは、
Button.Font.Size:=10;
のような感じの時に、Button側でFontの変更を知りたいということです。
よろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
それは素直に ClassA に FMemberA をセットする手続きを作れば良いのでは? なぜ ClassB でやる必要があるんで
すか?この回答への補足
procedure TClassA.SetMemberA(Value: Integer);
begin
FMemberA:=Value;
//<<ここ?>>
end;
の「ここ?」の部分に書けばよいとのことでしょうか?
実現したいのは、質問の文の「したい処理」の部分で、ClassBのメンバーにアクセスする処理です。
これはClassAの中で書くことはできませんし、上の形にしてもClassBのSetMemberは呼び出されませんよね?たしかクラスなのでアドレスが入ってるだけなのでアドレスが変わらない以上は…
もしかして根本的なところで勘違いしてますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- WordPress(ワードプレス) 投稿した文書の編集ができません。 1 2022/04/23 23:15
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- WordPress(ワードプレス) httpからhttpsへのリダイレクト設定について 2 2022/04/17 09:49
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
もしかして
-
エクセルで、日付を入力すると...
-
「ご処理進めて頂きますようお...
-
VBAでループ内で使う変数名を可...
-
VBAでセルに値が入力されるまで...
-
【Excel】特定の文字を含むセル...
-
自分の不注意で仕事で乗り合い...
-
メルカリのメルカードで買い物...
-
リョウ・・・量?料?
-
VBA SaveChanges 上書きされない
-
switch の範囲指定
-
VBAでGetAsynckeyStatekのエラー
-
全てのフォルダから最新ファイ...
-
インタラクティブの反対語は?
-
VBAのオートフィルについて
-
セックスレスの既婚女性は自慰...
-
DoEventsがやはり分からない
-
計算の問題なのですが、 例えば...
-
findは動くがfindnextがマクロ...
-
お家デートをしててハグを長い...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
DoEventsがやはり分からない
-
VBの質問#if 0 then ってどう...
-
UMLでの例外処理
-
Do~Loopした回数をカウントしたい
-
VB.NET Excelを読み込んでDataT...
-
月度は何て読みますか?
-
findは動くがfindnextがマクロ...
-
リョウ・・・量?料?
-
iD
-
VBA SaveChanges 上書きされない
-
Select Case文でこのようなこと...
-
Loadイベント中にほかのイベン...
-
セルの値が0はクリアするマクロ
おすすめ情報