笑话不错嘛?用SendMessage了!

解决方案 »

  1.   

    TForm(cs).visible:=true;不知道行不行?
      

  2.   

    老达摩师傅的方法不行。因为我在别的地方也要show这个窗口,假如这样的话,只能保证这次不显示出来,但是下次再别的地方还是会显示出来的。
      

  3.   

    我想到底还是 sendmessage 方法好用。不过这个message怎么send呢?
      

  4.   

    可以看看typinfo.pas文件里面好像有个setpropvalue的可以
      

  5.   

    ShowWindow(cs,SW_NORMAL);//相当于visible=true;
    ShowWindow(cs,SW_HIDE);//相当于visible=false;
      

  6.   

    大棉花师傅的方法不行。因为我在别的地方也要show这个窗口,假如这样的话,只能保证这次不显示出来,但是下次再别的地方还是会显示出来的。
      

  7.   

    如果不让它看看太阳的话 就把它的位置搬家啊 
      .Left := -2000 ;
      .Top :- -2000 ;
    等确认要显示的时候把.Left,.Top改为正确的值
    不过这样比较勉强 找到好方法不妨贴出来
      

  8.   

    XPONY老大,你这个方法很好啊!不过,怎么设置呢?怎么使用SENDMESSAGE方法呢?300分酬谢。
      

  9.   

    ShowWindow  //显示和隐藏
    MoveWindow  //改位置
    有个hwnd类型的参数就够了
      

  10.   

    在你设计或者创建那个cs对应的窗体时将其Left,和Top设为-2000
       (不可见就行),但其Visible = True ;
    *************************************************************
    1. 用 wisure(Delphi-我决不放手) 的方法 MoveWindow ;
       MoveWindow(cs,xPos,yPos,iWidth,iHeight,True) ;
       xPos: 移动后的.Left值
       yPos: 移动后的.Top值
       iWidth:移动后的.Width值
       iHeight:移动后的.Height值
       (这样移动窗口会自动改变窗口的Left,Top,Width,Height属性
        所以如果不想改变窗体大小的话,iWidth,iHeight应写成cs对应
        窗体的Width和Height值)
    ****************************************************************
    2. 用SendMessage方法,单独用这一个方法,我没有找到对应的消息
       但是你如自己在那个cs对应的窗体里重载一下一个自己的消息处理
       就可以  例:(假设cs对应的 窗体类为TFormCs )
       type 
         TFormCs = Class(TForm)
         ....
         ...
         private 
           ...
           procedure DoMyVisible(var Msg:Tmsg);message  WM_USER + 100 ; 
         public
           .....  end ; 在实现部分:
    procedure TFormCs.DoMyVisible(var Msg: Tmsg);  
    begin
      Self.Left := msg.wParam ;
      Self.Top  := msg.lParam ;
    end;
      
    然后在别的地方用 SendMessage方法
      SendMessage(cs,WM_USER+100,xPos,yPos);