📄 customstatictext1.pas
字号:
unit customstaticText1;
interface
uses
windows,SysUtils, Classes, Controls, StdCtrls,Graphics,messages,dialogs;
type
Tstructormy = class(TStaticText)
private
titlebmp:Tbitmap;
FFilename:string;
logfonts:LOGFONT;
Textfont:HFont;
{ Private declarations }
protected
procedure WMPAINT(var msg:TWMPAINT);message WM_PAINT;
procedure WMACTIVATE(var msg:Tmessage);message WM_CHILDACTIVATE;
procedure setfilename(const value:string);
{ Protected declarations }
public
constructor create(Aowner:Tcomponent);override;
destructor destroy; override;
procedure loadMyresource(var resource:Thandle;const name:string);
{ Public declarations }
published
property Filename:string read FFilename write setfilename;
{ Published declarations }
end;
procedure Register;
implementation
procedure Tstructormy.WMACTIVATE(var msg:Tmessage);
begin
end;
procedure Tstructormy.setfilename(const value:string);
begin
if (value <> FFilename) and (trim(value)<>'') then
begin
FFilename:=value;
try
Titlebmp.LoadFromFile(FFilename);
except
showmessage('请输入正确的文件名');
end;
self.Update;
end;
if trim(value) = '' then
begin
try
fFilename:='';
titlebmp.ReleaseHandle;
except
showmessage('释放错误!');
end;
end;
repaint;
end;
procedure Tstructormy.loadMyresource(var resource:Thandle;const name:string);
begin
if (trim(name)<>'') and (resource<>0) then
begin
try
titlebmp.LoadFromResourceName(resource,name);
except
showmessage('未能成功的取得图片资源!');
end;
end;
end;
procedure Tstructormy.WMPAINT(var msg:TWMPAINT);
var
dc:HDC;
myrect:Trect;
ps:tagPaintstruct;
begin
//inherited;
dc:=beginpaint(self.Handle,ps);
myrect:=self.ClientRect;
if assigned(titlebmp) then
begin
StretchBlt(dc,myrect.Left,myrect.Top,myrect.Right+myrect.left,myrect.Bottom+myrect.Top,titlebmp.Canvas.Handle,0,0,titlebmp.Width,titlebmp.Height,srccopy);
end;
logfonts.lfHeight:=self.Height-self.Height div 4;
logfonts.lfWidth:=logfonts.lfHeight div 2;
logfonts.lfWeight:=1;
logfonts.lfUnderline:=0;
logfonts.lfStrikeOut:=0;
logfonts.lfItalic:=0;
logfonts.lfEscapement:=0;
logfonts.lfOrientation:=0;
logfonts.lfFaceName:='楷体_GB2312';
logfonts.lfCharSet:=gb2312_charset;
Textfont:=createfontindirect(logfonts);
selectobject(dc,TextFont);
setbkmode(dc,windows.TRANSPARENT);
drawtext(dc,pchar(self.Caption),strlen(pchar(self.caption)),myrect,DT_CENTER);
Endpaint(self.Handle,ps);
end;
constructor tstructormy.create(Aowner:Tcomponent);
begin
inherited Create(aowner);
titlebmp:=Tbitmap.create;
end;
destructor Tstructormy.destroy;
begin
titlebmp.free;
inherited destroy;
end;
procedure Register;
begin
RegisterComponents('Terry', [Tstructormy]);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -