掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
自作クラスのPrivateメンバを非表示にするには? (ID:102789)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> Privateな変数のM_Valueまで表示されてしまいます。 同一プロジェクトの場合は、むしろ Private も見えていないと デバッグ時に困るような気がしますが…。 > これを非表示にするにはどうしたらよいのでしょうか? 少なくとも、外からは見えないはずです。Private なので。 たとえばそのクラスを DLL プロジェクトに移動し、呼び出す EXE を別に作るとします。 この場合、DLL プロジェクトと EXE プロジェクトをプロジェクトグループ(*.vbg)にして ひとつの開発環境で開いている場合、オブジェクトブラウザの表示は EXE 側を選択しているか、DLL 側を選択しているかで、Private メンバーの可視が 変化することになります。 あるいは、VB 開発環境を 2 つ起動した場合も同様です。 ActiveX DLL プロジェクト "DLLProject" の "Class1" クラスに 先のコードを書いて、[F5] で実行状態にする。 もう一つの開発環境は、標準EXE プロジェクト "Project1" にし、 参照設定画面を開き、実行中の "DLLProject" にチェック。そして Dim p As Class1 Set p = New Class1 p.Value = 123 MsgBox p.Value のようなコードをステップ実行してみると… EXE 側のオブジェクトブラウザやローカルウィンドウには表示されず、 DLL 側にのみ表示されるという状態になります。 > 非表示にするには 非表示設定といえばもう一つ。 メニューの[ツール]-[プロシージャ属性]を使うと、自身の公開メンバーを 非表示設定する事が出来ますが、こちらも、別プロジェクトから参照しないと 「非表示のメンバー」として扱われないようです。(同一プロジェクトグループも > または、Private変数を使用しないやり方でもあるのでしょうか? どうしてもというなら、変数以外の所に保持するぐらいしか思いつかないです。 SaveSetting ステートメントとか、Put # ステートメントとか、SetProp API とか。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.