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

📄 unicai.pas

📁 一个图形变化器
💻 PAS
字号:
unit UniCai;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtDlgs, ExtCtrls;

type
  TForm1 = class(TForm)
    OpenPictureDialog1: TOpenPictureDialog;
    bt1: TButton;
    bt2: TButton;
    bt3: TButton;
    bt4: TButton;
    bt5: TButton;
    bt6: TButton;
    procedure FormActivate(Sender: TObject);
    procedure bt1Click(Sender: TObject);
    procedure bt2Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure bt3Click(Sender: TObject);
    procedure bt4Click(Sender: TObject);
    procedure bt5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure bt6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  bitmap:tbitmap;
  i,numm:integer;
  rect1,rect2,rect3:trect;

  flag:boolean;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
begin
  if flag then
     form1.WindowState:=wsMinimized;
  flag:=false;
end;

procedure TForm1.bt1Click(Sender: TObject);
begin
    openpicturedialog1.Filter:='Bitmap file(*.bmp)|*.bmp';
    if openpicturedialog1.Execute then
     begin
     bitmap.LoadFromFile(openpicturedialog1.FileName);
     form1.Canvas.Draw(0,0,bitmap);
     end;
end;

procedure TForm1.bt2Click(Sender: TObject);
begin
     Form1.Canvas.Draw(0,0,bitmap);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
    bitmap.Free;
end;

procedure TForm1.bt3Click(Sender: TObject);
begin
   Form1.Repaint;
   if bitmap.Width>0 then numm:=form1.Width div 2;
   for i:=0 to numm do
      begin
        bitblt(form1.Canvas.Handle,i,0,i,bitmap.Height,bitmap.Canvas.Handle,bitmap.Width-i,0,srccopy);
      end;  
end;

procedure TForm1.bt4Click(Sender: TObject);
begin
   form1.Repaint;
   for i:=0 to bitmap.Width do
     begin
       with rect1 do
         begin
           left:=i;
           top:=0;
           right:=i+1;
           bottom:=bitmap.Height;
         end;
         with rect2 do
           begin
            left:=(form1.Width div 2)-i-1;
            top:=i;
            right:=(form1.Width div 2)-i;
            bottom:=bitmap.Height+i;
           end ;
       //end;
         with rect3 do
           begin
            left:=(form1.Width div 2 )+i-1;
            top:=i;
            right:=(form1.Width div 2)+i;
            bottom:=bitmap.Height+i;
           end;
        end;
     canvas.CopyRect(rect2,bitmap.Canvas,rect1);
     canvas.CopyRect(rect3,bitmap.Canvas,rect1);
   
end;

procedure TForm1.bt5Click(Sender: TObject);
begin
     form1.Repaint;
     for i:=0 to bitmap.Height do
     begin
       with rect1 do
         begin
           left:=0;
           top:=i;
           right:=bitmap.Width;
           bottom:=i+1;
         end;
       with rect2 do
         begin
           left:=0;
           top:=(form1.Height div 2)-i-1;
           right:=bitmap.Width;
           bottom:=(form1.Height div 2)-i;
         end;
       with rect3 do
         begin
           left:=0;
           top:=(form1.Height div 2)+i-1;
           right:=bitmap.Width;
           bottom:=(form1.Height div 2)+i;
         end;
     canvas.CopyRect(rect2,bitmap.Canvas,rect1);
     canvas.CopyRect(rect3,bitmap.Canvas,rect1);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  flag:=true;

   bitmap:=tbitmap.Create;
   openpicturedialog1.Filter:='Bitmap file(*.bmp)|*.bmp';
   
end;

procedure TForm1.bt6Click(Sender: TObject);
begin
    close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -