在主窗体生成一个子窗体,但要求子窗体没有焦点,如何实现?
主要讲解原理,谢谢个人设想从tgraphic生成,但没有例子,请教。

解决方案 »

  1.   

    让 子窗体.enable:=false ;就可以了吧
      

  2.   

    不行啊
    var
      f: TForm1;
    begin
      f :=  TForm1.Create(Application);
      f.Caption := timetostr(now);
      f.Left := Screen.Width - f.Width;
      f.Show;
      Self.BringToFront; // 增加后切换效果不好:(
      f.Enabled := false;
    end;应该使用TGraphicControl可以实现,但如何实现?
      

  3.   

    http://search.csdn.net/Expert/topic/1919/1919489.xml?temp=.5253412
      

  4.   

    Kshape([伟大的大伟!]) 
    只能在dll里面吗?
      

  5.   

    现在的问题真是越来越奇怪了
    没有焦点的窗体……
    焦点没什么有没有,只有能不能获得
    你说的焦点是指什么?对窗体有什么要求?有控件没有?有没有用户输入?
    说清楚点阿
    显示一个提示窗体,但没有焦点,还未实现
    ============================================
    如果只是这样的话,用Hint好了
      

  6.   

    多谢你的参与:)窗体实现的效果比hint好看的啊,
    如果做在窗体里面,可以设置的东西更多,响应消息...从A窗体中动态生成B窗体.B窗体会被带到前面.
    现在想实现A生成B的时候,A仍旧在在前面,B不能获得输入点焦点.
    (A.bringtofront可以实现.但这样有闪动)
      

  7.   

    你说的输入点焦点是什么?里面还有edit等文本控件吗?这不是与“没有焦点”相矛盾吗?
      

  8.   

    实现A生成B的时候,A仍旧在在前面,B不能获得输入点焦点.
    (A.bringtofront可以实现.但这样有闪动)是b.bringtofront 吧?
      

  9.   

    // 小弟表达不清, 代码+注释表达
    // 用下面的代码可以生成一个提示窗体.
    var
      f: TForm;
    begin
      f :=  TForm.Create(Application);
      f.Caption := timetostr(now);
      f.Width := 160;
      f.Height := 90;
      f.Top := 0;
      f.Left := Screen.Width - f.Width;
      f.BorderStyle := bsNone;
      // show后,调用窗体变灰,生成的窗体已经获得焦点.
      f.Show;
      f.Canvas.TextOut(20, 0, f.caption + '操作成功!');
      // 下面一行可以换回来.但效果不好.
      // Self.BringToFront;
      // 能否实现生成f后调用窗体还是有输入焦点的?
    end;
    // 那应该称为焦点吧?实在不好意思,描述不清,向各位道歉:)