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

📄 unit_pluse.pas

📁 这是一个用Delphi开发的MP3播放器的源码
💻 PAS
字号:
unit Unit_Pluse;

interface

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

type
  TFrm_Pluse = class(TForm)
    Image_CAD: TImage;
    Timer_Pluse: TTimer;
    PopupMenuP: TPopupMenu;
    Menu_SuiJi: TMenuItem;
    Menu_DanSe: TMenuItem;
    MenuItem1: TMenuItem;
    Menu_Dai: TMenuItem;
    Menu_Ye: TMenuItem;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Timer_PluseTimer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Image_CADDblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Play_Shu:Integer;
    Xian_Dai:String;
    Duo_Dan:Boolean;
  end;

var
  Frm_Pluse: TFrm_Pluse;

implementation

uses Unit_Main;

{$R *.dfm}

procedure TFrm_Pluse.FormClose(Sender: TObject; var Action: TCloseAction);
begin
try
    Action:=CaFree;
    Frm_Main.Menu_Pluse.Enabled:=True;
    Frm_Pluse.Timer_Pluse.Enabled := False;
except
      Frm_Main.Caption:= Frm_Main.Caption;
      exit;
end;
end;

procedure TFrm_Pluse.Timer_PluseTimer(Sender: TObject);
var
     xmax,ymax,x,x1,r,y,alpha:single;
     i,Temp:integer;
     prior,next:TPoint;
     const Su_Du:Integer=1000;
begin
try
if Frm_Main.Play_Stop = True then
begin
if Frm_Pluse.Duo_Dan = True then
begin
 if Xian_Dai ='Xian'  then
   begin
     Frm_Pluse.Timer_Pluse.Enabled := False;
     xmax:=Image_CAD.Width;
     ymax:=Image_CAD.Height;
   //  Image_CAD.Canvas.Brush.Color := Rgb(0,0,0);
   //  Image_CAD.Canvas.FillRect(Rect(0,0,Image_CAD.Width,Image_CAD.Height));


     Image_CAD.Canvas.Pen.Width := 1;

     for i:=0 to 500 do
       begin
       Image_CAD.Canvas.Pen.Color := Rgb(Round(Random(255)),Round(Random(255)),Round(Random(255)));
            alpha:=i*0.0131416;
            r:=200*cos(10*alpha);
            x:=r*sin(alpha)+xmax/2;
            y:=r*cos(alpha)+ymax/2;
            next.X :=trunc(x);
            next.Y:=trunc(y);

            for  Temp:= 0 to Su_Du do
                 Application.ProcessMessages;

            if i = 0 then
            begin
                prior:=next;
                Image_CAD.Canvas.MoveTo(prior.X,prior.Y);
                end;

                Image_CAD.Canvas.LineTo(next.X,next.Y);
                prior:=next;
            end;
       end;
  if Xian_Dai ='Dai' then
     begin
     Frm_Pluse.Timer_Pluse.Enabled := False;
     ymax:=Image_CAD.Height;
  //   Image_CAD.Canvas.Brush.Color := Rgb(0,0,0);
   //  Image_CAD.Canvas.FillRect(Rect(0,0,Image_CAD.Width,Image_CAD.Height));


     Image_CAD.Canvas.Pen.Width := 1;

     for i:=0 to Image_CAD.Width do
     begin

     for  Temp:= 0 to Su_Du do
                 Application.ProcessMessages;
     Image_CAD.Canvas.Pen.Color := Rgb(Round(Random(255)),Round(Random(255)),Round(Random(255)));
      x1:=i*0.04;
      y:=100*cos(x1)+ymax/2;
      Image_CAD.Canvas.MoveTo(i,trunc(y));
      Image_CAD.Canvas.LineTo(i+50,trunc(y));
      end;

     end;
end
else
begin
     if Xian_Dai ='Xian'  then
   begin
     Frm_Pluse.Timer_Pluse.Enabled := False;
     xmax:=Image_CAD.Width;
     ymax:=Image_CAD.Height;
   //  Image_CAD.Canvas.Brush.Color := Rgb(0,0,0);
   //  Image_CAD.Canvas.FillRect(Rect(0,0,Image_CAD.Width,Image_CAD.Height));

     Image_CAD.Canvas.Pen.Color := Rgb(Round(Random(255)),Round(Random(255)),Round(Random(255)));
     Image_CAD.Canvas.Pen.Width := 1;

     for i:=0 to 500 do
       begin

            alpha:=i*0.0131416;
            r:=200*cos(10*alpha);
            x:=r*sin(alpha)+xmax/2;
            y:=r*cos(alpha)+ymax/2;
            next.X :=trunc(x);
            next.Y:=trunc(y);

            for  Temp:= 0 to Su_Du do
                 Application.ProcessMessages;

            if i = 0 then
            begin
                prior:=next;
                Image_CAD.Canvas.MoveTo(prior.X,prior.Y);
                end;

                Image_CAD.Canvas.LineTo(next.X,next.Y);
                prior:=next;
            end;

            Play_Shu:=Play_Shu+1;
            if Play_Shu = 10 then
               begin
               Play_Shu:=0;
               Xian_Dai:='Dai';
               end;

       end;
  if Xian_Dai ='Dai' then
     begin
     Frm_Pluse.Timer_Pluse.Enabled := False;
     ymax:=Image_CAD.Height;
   //  Image_CAD.Canvas.Brush.Color := Rgb(0,0,0);
   //  Image_CAD.Canvas.FillRect(Rect(0,0,Image_CAD.Width,Image_CAD.Height));

     Image_CAD.Canvas.Pen.Color := Rgb(Round(Random(255)),Round(Random(255)),Round(Random(255)));
     Image_CAD.Canvas.Pen.Width := 1;
     for i:=0 to Image_CAD.Width do
     begin

     for  Temp:= 0 to Su_Du do
                 Application.ProcessMessages;
      x1:=i*0.04;
      y:=100*cos(x1)+ymax/2;
      Image_CAD.Canvas.MoveTo(i,trunc(y));
      Image_CAD.Canvas.LineTo(i+50,trunc(y));
      end;

            Play_Shu:=Play_Shu+1;
            if Play_Shu = 10 then
               begin
               Play_Shu:=0;
               Xian_Dai:='Xian';
               end;

     end;
end;
      Frm_Pluse.Timer_Pluse.Enabled := True;
end;
except
      Frm_Main.Caption:= Frm_Main.Caption;
      exit;
end;
end;

procedure TFrm_Pluse.FormCreate(Sender: TObject);
var
     xmax,ymax,x,r,y,alpha:single;
     i:integer;
     prior,next:TPoint;
begin
try
     xmax:=Image_CAD.Width;
     ymax:=Image_CAD.Height;
     Image_CAD.Canvas.Brush.Color := Rgb(0,0,0);
     Image_CAD.Canvas.FillRect(Rect(0,0,Image_CAD.Width,Image_CAD.Height));

     Image_CAD.Canvas.Pen.Color := Rgb(0,255,0);
     Image_CAD.Canvas.Pen.Width := 1;

     for i:=0 to 1000 do
       begin
            alpha:=i*0.0131416;
            r:=200*cos(10*alpha);
            x:=r*sin(alpha)+xmax/2;
            y:=r*cos(alpha)+ymax/2;
            next.X :=trunc(x);
            next.Y:=trunc(y);
            if i = 0 then
            begin
                prior:=next;
                Image_CAD.Canvas.MoveTo(prior.X,prior.Y);
                end;

                Image_CAD.Canvas.LineTo(next.X,next.Y);
                prior:=next;
            end;

         Xian_Dai:='Xian';
except
     exit;
   end;
end;

procedure TFrm_Pluse.Image_CADDblClick(Sender: TObject);
begin
try
     if Xian_Dai = 'Xian' then
        Xian_Dai :='Dai'
        else
        Xian_Dai:='Xian';
except
     exit;
   end;        
end;

end.

⌨️ 快捷键说明

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