あなたはabstractという用語を使用していますが、あなたの質問を読んで、 Delphi 内で抽象が定義されている方法を本当に意味しているとは思えません。抽象という言葉は、一般的な平易な話し方で意味していると思います。子孫によって変更または追加する必要がある部分を含むフォームを設計したいのです。Delphi の抽象メソッドは、実装のないクラス ルーチンを意味します。ただし、抽象メソッドの有無にかかわらず、基本フォームを設計することは完全に可能であるため、問題ではありません。
次のように、写真/図に示すようにセットアップを作成できます。
TBaseForm
2 つの編集、2 つのラベル、2 つのボタン、1 つの ActionList を持つフォームを設計します。
- ActionList に 3 つのアクションを追加します: Create、Save、Cancel、
- CancelButton.Actionにキャンセルアクションをあらかじめ割り当てておき、
- フォームを保存し、
- メニューコマンド File > New > Other > [Project Name] > BaseForm を使用して、TBaseForm から継承された新しいフォームを設計します。
- 編集、ラベル、ボタン、およびアクションを含む新しいフォームが作成されます。
- 保存アクションを他のボタンのアクション プロパティに割り当てます。
- 「アイテムの編集」というキャプションを付けて、
- フォームを保存し、「Create New Item」フォームに対して繰り返します。
必要に応じて、基本フォームに抽象メソッドを含めることができます。実行時に TBaseForm インスタンスを作成すると、コンパイラは抽象メソッド 'TBaseForm.MethodName' を含む 'TBaseForm' のインスタンスを作成するという警告を出します。実行時に抽象エラーを生成するメソッドを呼び出すまで、警告のままです。そのメソッドを実装する子孫フォームを作成すると、警告は表示されません。デザイナーで抽象メソッドを使用してフォームを作成しても、警告は生成されません。ただし、実行時エラーは引き続き発生する可能性があります。