⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainunit.pas

📁 delphi example delphi example delphi example
💻 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 + -