delphi语言开发中窗体嵌入问题

在使用Delphi和Devexpress开发中遇到窗体嵌入问题,通过SetParent函数解决了窗体嵌入及焦点获取问题,但出现无法自动置顶显示的难题。采用Application.OnMessage事件来拦截并处理消息,实现窗体交互的变通方案。
摘要由CSDN通过智能技术生成

        最近用 delphi 语言 + devexpress ribbon组件 开发了一个小系统,在窗体嵌入时,嵌入窗体在响应消息时遇到了一些问题,现将处理方法记录如下,供大家参考,希望能得到牛人的指点。

        1、最初嵌入方法如下:

 procedure LoadForm2(parentForm: TWincontrol);

//使用ribbon后,parentForm是父窗体上的一个Panel或activepage,不是父窗体本身
begin
  if not Assigned(frmfrom2) then
  begin
    frmfrom2:= Tfrmform2.Create(nil);

    frmfrom2.parent:= parentForm;

    ......

    这种方式可以实现嵌入的效果,但是存在一个问题:form2上的text控件点击时,不能得到焦点,问题困扰了很久。

 

   2、后来经过查资料发现,需要使用 setparent 函数

 

 procedure LoadForm2(parentForm: TWincontrol); 
begin
  if not Assigned(frmfrom2) then
  begin
    frmfrom2:= Tfrmform2.Create(nil);

    SetParent(frmfrom2.Handle, parentForm.Handle);
    MoveWindow(frmfrom2.Handle, 0, 0, parentForm.Width, parentForm.Height, True);

.......

这样

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值