📄 mainunit.pas
字号:
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, jpeg, Buttons, ImgList, XPMan;
type
TForm1 = class(TForm)
Panel1: TPanel;
BtnShake: TBitBtn;
Image1: TImage;
XPManifest1: TXPManifest;
ListBox1: TListBox;
BtnSys: TButton;
BtnParamstr: TButton;
BtnFormStyle: TButton;
BtnAbout: TButton;
Panel2: TPanel;
btnShow: TButton;
procedure BtnShakeClick(Sender: TObject);
procedure BtnSysClick(Sender: TObject);
procedure BtnParamstrClick(Sender: TObject);
procedure BtnAboutClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure BtnFormStyleClick(Sender: TObject);
procedure btnShowClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
about;
{$R *.dfm}
procedure TForm1.BtnShakeClick(Sender: TObject);
var
BackLeft,BackTop,I:integer;
m:longint;
begin
m:= getWindowLong(Handle, GWL_EXSTYLE);
m:= m Or WS_EX_LAYERED;
SetWindowLong (handle, GWL_EXSTYLE, m);
//第二个参数是指定透明颜色,为0则使用第四个参数设置alpha值,从0到255
SetLayeredWindowAttributes (handle, 0, 230, LWA_ALPHA);
backLeft:= Left;//保存窗体的left
BackTop := Top;//保存窗体的top
//其中number可由你设置一个灵活的数字,当然值由你定
for I:=1 to 20 do
begin
Left:= (BackLeft-10) + (Random(20));//水平抖动
Top := (BackTop-10) + (Random(20));//垂直抖动
end;
Left:= BackLeft;//备份窗体的left
Top := BackTop;//备份窗体的top
end;
procedure TForm1.BtnSysClick(Sender: TObject);
var
OSVI:OSVERSIONINFO;
s:string;
is98orlater:boolean;
begin
//设置版本信息结构的大小
OSVI.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);
GetVersionEx(OSVI);//获取版本信息
is98orlater:= //判断是否98或以后版本
(osvi.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS) and
((osvi.dwMajorVersion>4) or
((osvi.dwMajorVersion=4) and (osvi.dwMinorVersion>0)));
//下面开始显示信息
case OSVI.dwPlatformId of //根据OSVI.dwPlatformId的数值的不同显示具体的平台描述
VER_PLATFORM_WIN32s: // Windows 3.1平台
s:='Windows 3.1';
VER_PLATFORM_WIN32_WINDOWS: // Windows 95/98平台
if(is98orlater) then //98
s:='Windows 98'
else
s:='Windows 95'; //95
VER_PLATFORM_WIN32_NT: // Windows NT平台
s:='Windows NT';
end;
listbox1.Items.Add('系统平台:' + s);
listbox1.Items.Add(IntToStr(OSVI.dwMajorVersion));
listbox1.Items.Add(IntToStr(OSVI.dwMinorVersion));
//根据平台的不同具体处理OSVI.dwBuildNumber信息
case OSVI.dwPlatformId of
// Windows 95/98平台则取OSVI.dwBuildNumber的低位字
VER_PLATFORM_WIN32_WINDOWS:
listbox1.Items.Add(IntToStr(LOWORD(OSVI.dwBuildNumber)));
// Windows NT平台则取所有位的值
VER_PLATFORM_WIN32_NT:
listbox1.Items.Add(IntToStr(OSVI.dwBuildNumber));
else
listbox1.Items.Add(''); // Windows 3.1平台此值为空
end;
listbox1.Items.Add(OSVI.szCSDVersion);
end;
procedure TForm1.BtnParamstrClick(Sender: TObject);
begin
listbox1.Items.Add(extractfilepath(paramstr(0)));
listbox1.Items.Add(paramstr(0));
listbox1.Items.Add(extractfiledir(paramstr(0)));
end;
procedure TForm1.BtnAboutClick(Sender: TObject);
begin
form2:= Tform2.Create(self);
form2.ShowModal;
form2.Free;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//中心重叠关闭窗体
//ANimateWindow(Handle,1000,AW_center+AW_HIDE);
//从左至右关闭窗体
//ANimateWindow(Handle,200,AW_SLIDE+AW_HOR_POSITIVE+AW_HIDE);
//淡出窗体
ANimateWindow(Handle,800,AW_SLIDE+aw_blend+AW_HIDE);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
//
//ANimateWindow(Handle,300,AW_SLIDE+AW_HOR_NEGATIVE);
//渐现效果
//animatewindow(form1.Handle,500,aw_blend or aw_activate);
//中心扩张显示
//animatewindow(form1.Handle,1000,aw_center+aw_activate);
//自下而上卷帘
//animatewindow(form1.Handle,1000,aw_ver_negative or aw_activate);
//自上而下卷帘
//animatewindow(form1.Handle,1000,aw_ver_positive or aw_activate);
//自右向左显示
//animatewindow(form1.Handle,1000,AW_HOR_NEGATIVE or aw_activate);
//自左向右显示
//animatewindow(form1.Handle,1000,aw_hor_negative or aw_activate);
Form1.Width := Form1.Width - Panel2.Width;
end;
procedure TForm1.BtnFormStyleClick(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.btnShowClick(Sender: TObject);
begin
if Panel2.Visible then
begin
Form1.Width := Form1.Width - Panel2.Width;
BtnShow.Caption := '显示Panel';
end
else
begin
Form1.Width := Form1.Width + Panel2.Width;
BtnShow.Caption := '隐藏Panel';
end;
Panel2.Visible := Not (Panel2.Visible);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -