☆TShellResourcesって?

TShellResourcesって、何に使うのだろうという疑問から少し調べてみました。
ヘルプによるとVistaのシェルアニメーションは、システムの外部からアクセスできなくなっているらしく、TShellResourcesはこのアニメーションリソースを提供するようです。まあ、ソースを見てもリソースのためだけに用意されていることが明らかですけどね。ということで、このリソース(CopyFiles)を表示させてみました。
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellAnimations, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Animate1: TAnimate;
    Animate2: TAnimate;
    ShellResources1: TShellResources;
    Label1: TLabel;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  // XP
  Animate1.CommonAVI := aviCopyFiles;
  Animate1.Active := True;

  // Vista(TShellResourcesより)
  // リソースエディターでIDを調べました。
  Animate2.ResID := 160; // CopyFiles.res
  Animate2.ResHandle := hInstance;
  Animate2.Active := True;
end;

end.


実行させるとこんな感じ・・・。

Shellresource


ご覧のように少しイメージが異なります。 ヘルプには「TShellResources は、Vista で実行され、共有ライブラリからアニメーションを使用するプログラムにのみ使用してください。それ以外の場合は、必要のないオーバーヘッドを増やすだけです。 」とありますが、この微妙な差が気に入った方は使ってみてはいかが(笑)

|