比如,你建一个工程,新增一个窗体Form1,加上了一个TButton,并建立其Click事件如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('父窗体的事件');
end;
然后,你再增加一个窗体,是用继承Form1的方式加上的,即File->New->Other...打开一个对话框New Items,上面有好多个面板,其中一个面板的名字是你的工程文件名,点中这个,上面显示的是你的已有Form图标列表,选中Form1,此时面板下部的inherit单选项是默认选中的。点OK,生成了新的Form2!
此时的Form2是继承了Form1的,继承了Form1窗体的所有方法和属性,包括上面所举的Button1和其click事件。此时你点Form2上的Button1建立其Click事件,会得到:
procedure TForm2.Button1Click(Sender: TObject);
begin
inherited;//这里出现了继承命令。
end;
你可以在inherited;之前或之后加上子窗体中要做的语句,如:
procedure TForm2.Button1Click(Sender: TObject);
begin
inherited;//这里出现了继承命令。
showmessage('子窗体的事件');
end;
那么当程序运行时,你点击了Form2上的Button1时,会先执行父窗体上的Button1事件(即从inherited继承的语句),弹出一个提示框:“父窗体的事件”;后执行子窗体上的加入的语句(即inherited之后的语句),弹出又一个提示框:“子窗体的事件”。
当然你还可以改成:
procedure TForm2.Button1Click(Sender: TObject);
begin
showmessage('子窗体的事件');
inherited;
end
再看一下这个效果。
再试试看,你删除Form2上的Butto1,Form1上的Button1未受任何影响;
但是你删除Form1上的Button1,Form2上的Button1不见了!怎么样?看清楚了没?
最后的建议,看书要看活,不要看死!自己动手做一下吧!