今日、私はCSDNフォーラムをさまよい、「武道のマスターから数行の絶妙なコードを見たばかりで、それを理解できませんでしたすべての格闘技のマスターから学ぶ態度、私は投稿全体を終えた後、私はここでそれをまとめて録音したことがわかりました:
タイプ
tstringgridex = class(tstringgrid);
手順tform1.button1click(sender:tobject);
始める
tstringgridex(stringgrid1).rowcount> 5の場合
tstringgridex(stringgrid1).deleterow(5);
終わり;
-------------------------------------------------------------- --------
これは、StringGridでコードの行を削除するコードです。私はこの問題に2時間取り組みましたが、それを解決することができませんでした。しかし、なぜtstringgridex = class(tstringgrid)がありますか?それは明らかに継承されたtstringgridであり、これはtstringgridと同じですか?私の頭が大きすぎる!あなたが私にいくつかのアドバイスを与えてくれることを願っています!
上記は、ポスターの質問の内容です。 delphi。
1. TStringGridexの保護されたメンバーは、同じユニットで定義されているため、TFORMでアクセスできます。
2。TStringGridの保護されたメンバーは、同じユニットで定義されていないため、TFORMでアクセスできません。
3. TStringGridex = class(TStringGrid)であるため、ここでTstringGridexの保護されたメンバーにアクセスすることは、TstringGridの保護されたメンバーへのアクセスと同等です。
4。TStringGridexは単なる仲介者であり、その機能は拡張されませんが、TStringGridの範囲をこのユニットに導入しているため、TFormはTstringGridの保護されたメンバーにアクセスできます。
Zhangmenyiの見解は、Delphiの保護された民間メンバーと私的メンバーが同じユニットのさまざまなクラスとオブジェクトに表示され、保護されたメンバーがメンバーのサブクラスのユニットに表示できるということです。 。開かれます。)問題が解決しました。また、これからDelphiのオブジェクト指向の特性を垣間見ることができます。
開発には便利ですが、初心者を混乱させることができます
十分に厳密ではありません
しかし、とにかく、デルファイはもはや栄光の中にいません、それを使ってみましょう
Zhang Men Sanのコメント:完璧なことはありません!適切なものだけがあります!
Zhangmen 4のコメント:保護された方法は一般的に隠されているため、クラスのインスタンスを直接生成することは不可能ですが、Delphiでは、同じユニットにあるクラスは自動的に友人クラスと見なされ、保護された方法にアクセスできます。 、そのため、対応するユニットにサブクラスの実装を作成することにより、保護された方法を見ることができます。