Celso Azevedo • 14 de Dezembro de 2011 às 00:07Olá Nub©mta,nÃom gostei, as mudanças não foram muitas em termos de aparência, foi melhorar o que já estava feito e isso foi bom.Obrigado pelo comentário!
#contents
[[English site is here.:http://github.com/toooooooby/o3-layered-window/wikis]]

Celso Azevedo • 14 de Dezembro de 2011 às 00:07Olá Nub©mta,nÃom gostei, as mudanças não foram muitas em termos de aparência, foi melhorar o que já estava feito e isso foi bom.Obrigado pelo comentário!
*はじめに [#m4623262]

プログラム開発環境 Delphi において、レイヤードウインドウを作成することができるライブラリ『O3LayeredWindow』を開発、公開しています。

当ライブラリは、UpdateLayeredWindow() API の Delphi環境用のラッパーライブラリとなっており、 GDIPlus などのライブラリを併用することで簡単にレイヤードウインドウを用いて、アルファ付きPNG画像などを用いたウインドウを生成することができます。
Delphiにてアルファ付き画像をウインドウとして表示したい、というような際はぜひご利用ください。

#ref(http://github.com/toooooooby/o3-layered-window/tree/master/documents/images/screenshot01.jpg?raw=true,nolink)

CodeCentralでも公開しました。
[[CDN » CodeCentral:http://cc.codegear.com/item/26063]]

githubにて開発中。
toooooooby's o3-layered-window at master — GitHub
http://github.com/toooooooby/o3-layered-window/tree/master
*使い方 [#oca5bc49]
まずは、usesします。(GDIPlusを使う例なので、GDIPlusのunitもuses しています)

  uses
    :
    O3LayeredWindowUnit, GDIPAPI, GDIPOBJ;

適用したいFormで以下のように宣言します
#pre{{
private
   :
  FLayeredWindow: TO3LayeredWindow;
}}
Formのコンストラクターなどで以下のように生成して適用します。

#code(delphi){{
#geshi(delphi){{
constructor TMyForm.Create;
var
  Graphics: TGPGraphics;
  Image: TGPImage;
begin
  FLayeredWindow := TO3LayeredWindow.Create(Self);
  FLayeredWindow.Parent := Self;

  // TO3LayeredWindow.Surface:TBitmapを弄る
  // 以下はGDIPlus(GDI+)を使う例
  Graphics := nil; Image := nil;
  try
    Image := TGPImage.Create('test.png');
    FLayeredWindow.Surface.SetSize(
      Image.GetWidth, Image.GetHeight);
    Graphics := TGPGraphics.Create(
      FLayeredWindow.Surface.Canvas.Handle);
    Graphics.Clear(aclTransparent);
    Graphics.DrawImage(Image, 0, 0);
  finally
    FreeAndNil(Image); 
    FreeAndNil(Graphics);
  end;

  // TO3LayeredWindow.Surface を弄ったら UpdateLayerで表示
  FLayeredWindow.UpdateLayer;
end;
}}

一応コンポーネントなので開放は自動です。

その他の使い方については、ダウンロードしたファイルに付属のデモを見てください。

*ダウンロード [#rd392162]
#ref(http://tobysoft.net/archives/delphi/O3LayeredWindowForDelphi-1.0.0.zip)

*謝辞 [#dba9be6c]

サンプルには以下が含まれています。
-gdiplus http://www.progdigy.com
-jedi.inc http://www.delphi-jedi.org

以下のサイトを参考にしました。

-Alpha Blended Splash Screen in Delphi - Part 2 | MelanderBlog
http://melander.dk/articles/alphasplash2/2/
-LayeredWindow.zip
http://gusuku.michikusa.jp/
※現在のバージョンはあまり追加要素がなくて、このライブラリを書き直してデモを追加したような形になってます。

*ライセンス [#a9841a63]

MPL 1.1
Mozilla Public License version 1.1
http://www.mozilla.org/MPL/MPL-1.1.html

*TODO [#lfd98467]
-google code projectにプロジェクトページを立てる

*history [#z2be39c6]
-[[1.0.0:http://tobysoft.net/archives/delphi/O3LayeredWindowForDelphi-1.0.0.zip]] 最初のリリース


----
#pcomment(,reply)
TIME:"2016-09-04 (Sun) 21:40:24" REFERER:"http://tobysoft.net/wiki/index.php?cmd=edit&page=Delphi%2FO3LayeredWindow" USER_AGENT:"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
Front page   Edit Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes