- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

English site is here.

はじめに Edit

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

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

screenshot01.jpg?raw=true

CodeCentralでも公開しました。
CDN » CodeCentral

githubにて開発中。
toooooooby's o3-layered-window at master — GitHub
http://github.com/toooooooby/o3-layered-window/tree/master

使い方 Edit

まずは、usesします。(GDIPlusを使う例なので、GDIPlusのunitもuses しています)

 uses
   :
   O3LayeredWindowUnit, GDIPAPI, GDIPOBJ;

適用したいFormで以下のように宣言します

private
   :
  FLayeredWindow: TO3LayeredWindow;

Formのコンストラクターなどで以下のように生成して適用します。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
#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;

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

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

ダウンロード Edit

謝辞 Edit

サンプルには以下が含まれています。

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

ライセンス Edit

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

TODO Edit

  • google code projectにプロジェクトページを立てる

history Edit

  • 1.0.0 最初のリリース

No comment. Comments/Delphi/O3LayeredWindow?

Name:

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2016-09-04 Sun 21:40:44 JST (352d)