📄 myfilter.pas
字号:
unit MyFilter;
interface
uses Windows, Classes, theme_se3, theme_se3objects;
const
MySign: array [0..13] of char = 'My skin format';
type
{ TMyThemeFilter }
TMyThemeFilter = class(TSeSkinFilter)
public
constructor Create; override;
{ }
class function GetFileExtension: string; override;
class function GetFilterName: string; override;
{ Filter }
procedure ReadSkin(Stream: TStream); override;
procedure WriteSkin(Stream: TStream); override;
end;
implementation {===============================================================}
uses Lzh;
{ TMyThemeFilter =====================================================}
constructor TMyThemeFilter.Create;
begin
inherited;
end;
class function TMyThemeFilter.GetFileExtension: string;
begin
Result := 'mytheme';
end;
class function TMyThemeFilter.GetFilterName: string;
begin
Result := 'MyTheme Format';
end;
procedure TMyThemeFilter.ReadSkin(Stream: TStream);
var
MemStream: TStream;
LzhStream: TLZHStream;
S: array [0..13] of Char;
begin
{ Read sign }
Stream.Read(S, SizeOf(MySign));
if S <> MySign then Exit;
{ Read skin }
MemStream := TMemoryStream.Create;
try
{ UnCompress}
LzhStream := TLZHStream.Create(Stream, MemStream);
try
LzhStream.UnPack;
finally
LzhStream.Free;
end;
{ Read SkinSource from MemStream }
MemStream.Position := 0;
ReadSkinSource(MemStream);
finally
MemStream.Free;
end;
end;
procedure TMyThemeFilter.WriteSkin(Stream: TStream);
var
MemStream: TStream;
LzhStream: TLZHStream;
Size: integer;
begin
{ Write sign }
Stream.Write(MySign, SizeOf(MySign));
{ Write skin }
MemStream := TMemoryStream.Create;
try
{ Write SkinSource to MemStream }
WriteSkinSource(MemStream);
{ Compress}
LzhStream := TLZHStream.Create(MemStream, Stream);
try
MemStream.Position := 0;
Size := LzhStream.Pack(MemStream.Size);
finally
LzhStream.Free;
end;
finally
MemStream.Free;
end;
end;
initialization
DefaultFilter := TMyThemeFilter;
RegisterSkinFilter(TMyThemeFilter);
finalization
UnregisterSkinFilter(TMyThemeFilter);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -