人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

完成QQ窗體的縮入伸出技巧

完成QQ窗體的縮入伸出技巧

更新時間:2022-08-31 文章作者:未知 信息來源:網絡 閱讀次數:

    不知道大家在使用QQ時有沒有想到它的縮入伸出的功能是如何實現的呢?實現這個效果的關鍵在于如何判斷當前鼠標指針下面的窗體是不是我們的程序窗體。GetCursorPos()是一個可以獲得鼠標指針在屏幕中的坐標的API函數,利用它與FindVCLWindow()的結合就可以輕易地獲得鼠標指針下的VCL可視組件,但當一個窗體中不只一個VCL可視組件,例如可能還有TPanel、TMemo等等類型時,那么我們就必須要查找到它們的Parent級,最終得到TForm,那就是指我們的程序窗體。按照這個思路我自定義了GetFormNameAt()函數,它可獲得當前鼠標指針下面的窗體的名稱。以下列出程序的主要實現代碼,供大家參考:

//自定義函數GetFormNameAt,獲得鼠標針指下窗體的Name
function GetFormNameAt ( X, Y : integer ) : string;
var
   P:TPoint;
   W:TWinControl;
begin
   P.X := X;
   P.Y := Y;
   W := FindVCLWindow(P); //得到鼠標指針下的VCL可視組件
   if ( nil <> W ) then
   begin
      while w.Parent<>nil do //當W的上級Parent不為空時就繼續往上找
        w:=w.Parent;
      Result := W.Name;//最后返回窗體的名稱Name
   end
   else
   begin
    Result := '';
   end;
end;




procedure TForm1.Timer1Timer(Sender: TObject);
var
   winPos:TPoint;
begin
   GetCursorPos(winpos);  //得到當前鼠標指針的在屏幕上的坐標
  
   //當鼠標指針下的窗體的Name等于form1.name時
   if form1.name=GetFormNameAt(winpos.X,winpos.Y) then
   {在此我們可以為form1取一個特別的名稱,以防有別的窗體名稱與它相同}
   begin
    form1.Timer2.Enabled:=false; //停用Timer2
    form1.Top:=0;  //form1的Top與屏幕對齊
   end
   else
    form1.Timer2.Enabled:=true; //開啟Timer2
end;



procedure TForm1.Timer2Timer(Sender: TObject);
begin
   if form1.Top<=20 then
      form1.Top:=-(form1.Height-10);//將form1向上移,在屏幕上方露出10像素
end;

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 孝昌县| 连云港市| 鹤峰县| 九龙坡区| 凤冈县| 台北市| 平度市| 江门市| 平江县| 龙里县| 绿春县| 汉川市| 文成县| 孟村| 墨竹工卡县| 清丰县| 永宁县| 贵定县| 大连市| 白朗县| 浦城县| 崇礼县| 仙居县| 新闻| 三亚市| 阿图什市| 涿鹿县| 包头市| 合肥市| 桦川县| 宿州市| 南岸区| 合阳县| 安龙县| 望都县| 道孚县| 海南省| 承德市| 志丹县| 伊川县| 嵊州市|