怎么实现继承一个基类窗体? (10分)

  • 主题发起人 主题发起人 龙之天涯
  • 开始时间 开始时间

龙之天涯

Unregistered / Unconfirmed
GUEST, unregistred user!
1、如题

我就是想在一个窗提中的KEYDOWN中
if Key = VK_Return then
SelectNext(ActiveControl,true,true);

而其它的窗体能否继承这个窗体,
从而实现这一个功能啊???
 
不明白你的意思,继承窗体可以用new->先你的项目中的某个窗体->Inherit
 
如果你在edit1.press中写下了这段代码,你可以在edit2的press事件中填入edit1press.
另外你可以把它写成一个过程:
function keynext(var key:char):boolean;
begin
if key=char(vk_return) then
begin
key:=#0;
postmessage(handle,wm_nextdlgctl,0,0);
end;
end;
然后在edit1,edit2的keypress中调用该过程。
 
楼上的代码只能在一个FROM中实现

但是我很多FORM中都要这个啊

而且如果把你的代码写在一个PAS 中

会找不到那个消息的啊

难道没有人会?
 
你可以做成frame的来完成你的工作
 
函数定义单元;(一个静态函数库)
unit keydown;
interface ......

procedure keynext(var skey:char);//定义

implementation
procedure keynext(var skey:char);//实现
begin
if skey=char(vk_return) then
begin
skey:=#0;
postmessage(handle,wm_nextdlgctl,0,0);
end;
end;
end.

引用函数的单元;
unit unit2;
interface
uses ...keydown;//加入静态函数库名
...
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
begin
keynext(key);//直接调用函数,参数为'key'
end;
end.
 
楼上的兄弟

我怎么按照你的写法却告诉我说

HANDLE

是非法的表示符号?
 
假设你上面的Form叫做[red]TBaseForm[/red]
把其它的Form声明该为
type
TOtherForm=class([[red]TBaseForm[/red])
...
即可
 
在窗体上点右键
add to repository
然后新建窗体,选择inherit那个窗体
就可以了
 
你把所做的这个窗体保存到仓库
其他的新建窗体从这个继承就可以了
 
楼上说的对
保存之后,新建一个from继承那个就是了
 
工程和窗体保存以后,New一个窗体的时候选择在New Item 选择工程名称那个Tab页,
选择你想继承的那个窗体,Click Ok 按钮就可以了。
 
你可以写一个公共的函数,所有窗体都调用不就行了
 
多人接受答案了。
 
后退
顶部