Newsgroups : Borland : borland.public.delphi.nativeapi.win32 : 2006 Feb : Does OnThemeChange work?

www.cryer.info
Managed Newsgroup Archive

Does OnThemeChange work?

Subject:Does OnThemeChange work?
Posted by:"James A. Schulz" (jaschu..@wiseware.com)
Date:Fri, 17 Feb 2006 07:42:35 +0100

The themes.pas unit includes an OnThemeChange event handler, but I don't think it works,
or at least it doesn't work in in the following:

***********

unit testU;

interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, Themes;

type
   TForm1 = class(TForm)
     procedure FormCreate(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
   private
     { Private declarations }
     procedure DoThemeChange(Sender: TObject);
   public
     { Public declarations }
   end;

var
   Form1: TForm1;
   ThemeServices: TThemeServices;

implementation

{$R *.dfm}

procedure TForm1.DoThemeChange(Sender: TObject);
begin
   ShowMessage('Theme Changed.');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   ThemeServices := TThemeServices.Create;
   ThemeServices.OnThemeChange := DoThemeChange;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   ThemeServices.Destroy;
end;

end.

*********

If I change themes while the app is running, the form is properly "re-themed" but the
ShowMessage dialog never appears.

What am I doing wrong?

Thanks,

JAS

Glossary

File Types

Replies:

www.cryer.info
Managed Newsgroup Archive