ポップアップウィンドウの左下隅

ポップアップウィンドウの左下隅

ユニットUnit1は、

インタフェースが

使用する
  Windowsの、メッセージ、sysutilsの、バリアント、クラス、グラフィックス、コントロール、フォーム、
  ダイアログ、ExtCtrls、StdCtrls; 

入力
  TForm1 = クラス(TFormは)
    ボタン1:のTButtonと、
    タイマ1:TTIMER。
    ボタン2:TButtonの。
    手続きButton1Click(送信者:TObjectを);
    手順Timer1Timer(送信者:TObjectを);
    手順Button2Click(送信者:TObjectを);
  プライベート
    { プライベート宣言} 
  公共
    { 公開宣言} 
  エンド

VAR 
  をForm1:TForm1;
  PopForm:TFormは、
実装

{ $のR * .DFM } 

手順TForm1.Button1Click(送信者:TObjectを)。
開始
   :PopForm = TFormはを。作成(自己); 
   PopForm.Width: = 200 ; 
   PopForm.Height: = 150 ; 
   PopForm.Name: = ' PopForm1 ' ; 
   PopForm.Left: = screen.Width- PopForm.Width。
   PopForm.Top: = screen.Height。
   PopForm.Show; 
   Timer1.Interval: = 200 ; 
   Timer1.Enabled: =真; 

終わり; 

手順TForm1.Timer1Timer(送信者:TObjectを);
開始
 PopForm.Top: = PopForm.Top- 10 場合 PopForm.Top <screen.Height-PopForm.Heightはその後、
     開始
       Timer1.Enabledを: = falseは、
       PopForm.Free; 
     エンド;
エンド; 

手順TForm1.Button2Click(送信者:TObjectを);
VAR私は、トップス:整数;  // 定義幾個變量

開始
:PopForm = TFormはを。作成(自己); 
  PopForm.Width: = 200 ; 
  PopForm.Height: = 150 ; 
  PopForm.Show;    // 表示メッセージフォームの 
  PopForm.Left:= Screen.WorkAreaWidth;   // デスクトップ使用可能な領域に右側に配置 
  PopForm.Top:=Screen.WorkAreaHeight; // 使用可能なターゲット領域のほとんどのデスクトップここ 
  トップス:= Screen.WorkAreaHeight - PopForm.Height;   //は最高のメッセージウィンドウを描画


  するために I:= 0   PopForm.Width  始める  // どちらかのメッセージフォームにサイクル幅を 
    = PopForm:PopForm.Left。 LEFT - 1。;
     IF PopForm.Top>トップスは= 次いで         // メッセージがウィンドウの高さ未満である場合、ループを継続 
    PopForm.Top:=PopForm.Top- 。1 
    スリープ(1。); 
    Application.ProcessMessages; 
  エンド; 

エンド; 

終わり
コードの表示

徐々にメッセージボックスをポップアップ画面の右下から生産

各マイクロソフト製品には、関係なく、機能やインターフェースデザインの私たちに、このようなOfficeXPなど、Office2003など、Messengerのインタフェース設計など、いくつかの驚きを与えるだろう、ソフトウェアをコピーしようとしている多くの対象となっている、メッセンジャーを取る、私はいくつかのセットを見てきましたソフトウェアビデオ会議ネットワークは、そのインターフェースのスタイルを借りてきました。
  しばらく前に、あなたがオリジナルのソフトウェア上のショートカットプロンプトウィンドウを追加したいので、これは、表示されたとき、より人目を引く外観は、ユーザの注意を引き起こす可能性がありますプロンプトウィンドウを必要とするユーザーディスプレイの動作をオフにすることができます影響を与えません。画面のポップアップメッセージの右下隅からのメッセンジャーが徐々に形成プロンプトと考えるのが自然であるが、私はそれを盗むよりも、最終的なプロンプトウィンドウの下に、ショートカットキーを多くを盗むために起こっている、カラースキームの相対的なメッセンジャーQQ2004オリンピックバージョンを好みます:影響は、
    


  このフォームは、次のような特徴を持っている:
  1 、表示がポップアップ画面の右下隅から徐々にであるとき、
  2 、それは非タイトルの形であるが、それは、ユーザーが移動してサイズを変更することができ、とても無題に使用する必要があります。フォームドラッグサイズ変更技術;
  3は、プロファイルフォームを作成し、ウィンドウのサイズを変更するときに再構築されなければならないように、それは、不規則な形、主に円形の上部左右のリード角です。
  4 タイトルとコンテンツ表示領域の色勾配を有する、直接スクリーンショットを充填する方法を、実装する際トリッキー用いて、表題のいくつかの小さな点があります。

  もちろん、インターフェースはあなたが正直に書かなければならないコードを盗むことができ、ここではインタフェースの設計と実装コードです:
    



記事の順序:Western Digitalのは - プロのドメイン名の登録、ウェブホスティングサービスを提供するために、
HTTP:// www.west263.com
上記の情報や記事の本文は、の不可欠な部分であるあなたがこの記事を転載したい場合は、上記の情報を保管してください、ありがとうございました! 
コードの表示

 

コントロールに見て

手順TForm1.FormCreate(送信者:TObjectを);
開始
  BorderStyleプロパティを: = bsNone。
  Brush.Style: = bsClear。
エンド; 



ユニットUnit1は、

インターフェイスは

使用しています
  Windowsの、メッセージ、sysutilsの、バリアント、クラス、グラフィックス、コントロール、フォーム、
  ダイアログ、uMlStdCtrl、uMlSkinForm、uMlFormBorder、GR32_Image_ml、uMlSkinCtrls、
  uMlCustomButton、uMlSkinButton、StdCtrlsを。

入力
  TForm1 = クラス(TFormは)
    ボタン1:のTButtonと、
    ボタン2:TButtonの。
    手順FormCreate(送信者:TObjectを);
    手順FormDestroy(送信者:TObjectを);
    手続きButton1Click(送信者:TObjectを);
    手順Button2Click(送信者:TObjectを);
    手順FormResize(送信者:TObjectを);
  プライベート
    { プライベート宣言} 
     手順DoVisible。
    手順DoInvisible;
  公共
    { 公開宣言} 
  ; 

VAR 
  をForm1:TForm1; 
   FullRgn、ClientRgn、CtlRgn:THandle。
実装

{ $のR * .DFM } 
手順TForm1.DoInvisible。
VaRの 
  ACONTROL:のTControl;
  A、マージン、X、Y、CTLX、CTLY:整数;
開始
  :マージン - =(ClientWidth幅)のdiv  2 ;
  // まず、フォーム領域取得 
  FullRgn:= CreateRectRgn(00 、幅、高さ)。
  // クライアント領域の領域検索 
  X:= マージンを。
  Y:高さ= - ClientHeight - マージンを。
  ClientRgn: = CreateRectRgn(X、Y、X + ClientWidth、Y + ClientHeight)。
  // 'マスク'アウトすべての非クライアント領域が、
  CombineRgn(FullRgn、FullRgn、ClientRgn、RGN_DIFF)。

  // 今、それらをフォーム上のすべてのコントロールを歩くと「OR」
   // 既存の全領域へ。
  以下のため:= 0   - ControlCount 1  行い 始める
    ACONTROL: = コントロール[A]を、
    場合(ACONTROLがあるのTWinControl)又は(ACONTROLがあるは、TGraphicControl)
         次に 有する ACONTROL ない 始める
      場合に可視次いで 開始
        CTLX: = X + 左。
        CTLY: = Y + トップ。
        CtlRgn: = CreateRectRgn(CTLX、CTLY、CTLX +幅、CTLY +の高さ)。 
        CombineRgn(FullRgn、FullRgn、CtlRgn、RGN_OR); 
      終了;
    エンド;
  エンド;
  // 領域は効果に入れて、すべての準備ができたら:
  SetWindowRgn(、FullRgn、TRUEハンドル);
エンド;
手順TForm1.Button1Click(送信者:TObjectを);
開始
// このボタンは、単に透明とトランスません切り替えます。.. 
  場合 Button1.Caption = ショーフォーム そして 始まる
    DoVisibleを。
    Button1.Caption: = 隠すフォーム終了
   始める
    DoInvisibleを。
    Button1.Caption: = "フォームを表示します" ;
  エンド;
エンド; 

手順TForm1.Button2Click(送信者:TObjectを);
開始
Application.Terminateを。
エンド; 

手順TForm1.FormCreate(送信者:TObjectを);
開始
 DoInvisibleを。
エンド; 

手続きTForm1.FormDestroy(送信者:TObjectを);
開始
  // 我々が作成した地域クリーンアップ
  DeleteObjectの(ClientRgnを)。
  DeleteObjectの(FullRgn)。
  DeleteObjectの(CtlRgn)。
エンド;
手順TForm1.FormResize(送信者:TObjectを);
始める
ならば Button1.Caption =表示形式 、その後
    DoInvisible 
  
    DoVisible。
エンド; 

手順TForm1.DoVisible;
開始
  // 完全な可視性を復元するには: 
  FullRgn:= CreateRectRgn(00 、幅、高さ); 
  CombineRgn(FullRgn、FullRgn、FullRgn、RGN_COPY)。
  SetWindowRgn(FullRgn、TRUEハンドル)。
エンド; 

終わり
コードの表示

 

おすすめ

転載: www.cnblogs.com/blogpro/p/11453721.html