プログラマーやプログラミング愛好家にとって、VB のクラスの技術は、大規模なソフトウェア、モジュール (Moudle)、コントロール (Activeocx)、リンク ライブラリ (Activedll)、クラス (Classmoudle) の開発プロセスにおいて学習の難しい点です。体系的かつ効率的なソフトウェア工学を構成するものであり、クラス技術は制御やリンクライブラリ技術の基礎となるものであるため、クラスの理論とプログラミング手法を習得することは非常に有意義です。
(1)クラスの基本定義と適用概要。
クラスは、メソッド、プロパティ、データ メンバーを含む高レベルのコード モジュールです。これはモジュールのスコープ内にあるだけでなく、グラフィカル インターフェイスのない Activeocx もプログラマはコントロールのように使用できます。クラスは継承できないことに注意してください。
クラスを使用すると、1 つまたは複数の特定のオブジェクトに対する複雑な操作を効率的に実行できます。オブジェクトのアクションはクラスのメソッドであり、オブジェクトの属性はクラスの属性プロセスです。比較的言えば、プログラミングの対象がものの集合である場合、次の 2 つの場合、コード処理にクラスを使用するのが非常に適しています。
(1) 同様のプロパティを持つオブジェクトを多数作成します。
(2) コードのカプセル化を改善します。
クラスの作成は非常に簡単で、コードを記述するときに、[プロジェクト] メニューの [クラス モジュールの追加] 項目を選択して空のクラスを追加します。
クラス ファイルは通常、.cls 拡張子を付けて保存されます。
(2)クラスメソッドの実装。
クラスのメソッドは、ダイナミック リンク ライブラリのインターフェイス関数に似ており、他のフォーム コードから指定された型パラメータを受け取り、それらをクラスに渡すことができます。一般に、クラス メソッドは戻り値があるかどうかを指定できます。通常、これはクラス内の公開プロシージャです。次のコード例を考えてみましょう。これにより、パスワード ボックスが文字以外の入力を拒否します。
(1) cls のようなコード。
OptionExplicit の変数チェック
PRivateWithEventsmytxtAsTextBox
'このクラスのメソッドはテキスト パスワード ボックスを受け入れて制御します
DimisNUMAsBoolean
'クラスのモジュールレベルの変数
PublicSubAttach(itTEXTAsTextBox)
'外部変数を mytxt に受け入れます
Setmytxt=itTEXT
EndSub
PrivateSubmytxt_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
isNUM=(キーコード>=65)And(キーコード<=90)
'パスワードボックスに入力されたキーボードが英字かどうかをテストします
IfisNUM=FalseThen
ビープ
mytxt.Text=""
' 入力が英字でない場合は、ベルが鳴り、パスワードボックスの内容がクリアされます。
MsgBox "不正な文字入力です!"
EndIf
Debug.Printmytxt.Text
'出力パスワードボックスの内容をデバッグします
EndSub
'クラスコードの終わり
(2)クラス参照。
記述されたクラスは 2 つの形式で参照できます。 1 つ目の方法は、Private (public または dim)、myCLS (指定されたクラス名)、AsNewcls (記述されたクラス名) です。まずモジュール レベルの宣言 (フォーム コード内で DimmyCLSAscls) を作成し、次に特定のコード プロセスで特定の定義 (Setmycls=Newcls) を作成します。これら 2 つの方法には、コードの効率性と簡素化に違いがあるかもしれませんが、筆者のプログラミング実践では特別な感覚はありません。ただし、私は最初の方法の方が書きやすいので好みます。さらに、コードの最後で SetmyCLS=Nothing を使用してクラスのリソース占有をキャンセルするのは、非常に良いプログラミング習慣です。
フォーム form1 (フォームにはパスワード ボックス コントロール text1、passworldchar="*" があります) に次のコードを追加します。
オプション明示的
プライベートmyCLSANewcls
'clsを引用
PrivateSubForm_Load()
myCLS.AttachText1
'スタートアップクラス
EndSub
'コードの最後でリソースを解放することを忘れないでください
PrivateSubForm_Unload(CancelAsInteger)
SetmyCLS=なし
終わり
EndSub
この記事のコードは、コードの作成プロセスとクラス メソッドの呼び出しメソッドを示しています (ただし、これはクラスのイベントに非常に似ています)。パスワード ボックスに文字以外の文字が入力された場合、システムは次のようにします。リングとパスワードボックスは元のデータから削除されます - パスワードはある程度保護されます。
クラス メソッドはパラメーターを必要とせず、パブリック関数やプロシージャと同様に、クラスで最も広く使用されています。次の記事では、包括的なプログラミングのためにクラスのプロパティ、イベント、メソッドを使用する方法について説明します。 (つづく)
->