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

📄 unit4.pas

📁 delphi写的抽奖程序
💻 PAS
字号:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids, DB, MPlayer;

type
  TForm4 = class(TForm)
    GroupBox1: TGroupBox;
    Panel1: TPanel;
    GroupBox2: TGroupBox;
    Panel2: TPanel;
    Label1: TLabel;
    ComboBox1: TComboBox;
    BitBtn1: TBitBtn;
    GroupBox3: TGroupBox;
    DBGrid1: TDBGrid;
    Timer1: TTimer;
    ds1: TDataSource;
    Panel3: TPanel;
    Label2: TLabel;
    Timer2: TTimer;
    Timer3: TTimer;
    mp1: TMediaPlayer;
    mp2: TMediaPlayer;
    mp3: TMediaPlayer;
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ComboBox1Change(Sender: TObject);
    procedure injust;
    procedure Timer2Timer(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure souplay;
    Procedure Kjsouplay;
    procedure zjsouplay;
    procedure mp1Notify(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;
  n,state,p,col,coll:integer;
  opt:integer;
implementation

uses Unit8,Unit1, Unit2;

{$R *.dfm}

procedure TForm4.FormShow(Sender: TObject);
var i:integer;
begin
  form1.Mp1.Stop;
  form1.mp2.Stop;
  if form1.sou3=0 then
  begin
    form4.souplay;
  end;
  state:=0;
  p:=0;
  opt:=0;
  col:=0;
  coll:=0;
  combobox1.items.Clear;
  timer2.Enabled:=true;
  dm.ADOQ7.Close;
  dm.ADOQ7.Open;
  dm.ADOQ6.Close;
  dm.ADOQ6.SQL.Clear;
  dm.ADOQ6.SQL.Add('select * from JX_Table');
  dm.ADOQ6.Open;
  if dm.ADOQ6.RecordCount>0 then
  begin
    for i:=0 to dm.ADOQ6.RecordCount-1 do
    begin
      combobox1.Items.Add(dm.ADOQ6.Fieldbyname('Nav_JXname').AsString);
      dm.ADOQ6.Next;
    end;
  end;
end;

procedure TForm4.BitBtn1Click(Sender: TObject);
var s,m:string;
begin
  if combobox1.ItemIndex=-1 then
  begin
    exit;
  end;
  form4.injust;
  if opt=1 then exit;
  dm.ADOQ6.Close;
  dm.ADOQ6.SQL.Clear;
  dm.ADOQ6.SQL.Add('select * from User_Table where Nav_ZJbs=:a');
  dm.ADOQ6.Parameters.ParamByName('a').Value:='0';
  dm.ADOQ6.Open;
  if dm.ADOQ6.RecordCount=0 then
  begin
    exit;
  end;
  if  state=0 then
  begin
    state:=1;
    p:=0;
    bitbtn1.Caption:=' 停    止 ';
    form4.Kjsouplay;
    coll:=0;
    timer3.Enabled:=false;
    label2.Font.Color:=clBlue;
    timer1.Enabled:=true;
  end
  else
  begin
    state:=0;
    p:=1;
    bitbtn1.Caption:=' 开    始 ';
    form4.zjsouplay;
    timer1.Enabled:=false;
    timer3.Enabled:=true;
  end;
  if p=1 then
  begin
    s:='update User_Table set Nav_ZJbs=:b and Nav_ZJname=:c where Nav_User=:a';
    dm.ADOQ8.Close;
    dm.ADOQ8.SQL.Clear;
    dm.ADOQ8.SQL.Add('update User_Table set Nav_ZJbs=:b, Nav_ZJname=:c  where Nav_User=:a');
    dm.ADOQ8.Parameters.ParamByName('b').Value:='1';
   // dm.ADOQ8.Parameters.ParamByName('a').Value:=Trim(label2.Caption);
    dm.ADOQ8.Parameters.ParamByName('a').Value:=dm.ADOQ9.Fieldbyname('Nav_User').AsString;
    dm.ADOQ8.Parameters.ParamByName('c').Value:=Trim(combobox1.Text);
    m:=combobox1.Text;
    dm.ADOQ8.ExecSQL;
    dm.ADOQ7.Close;
    dm.ADOQ7.Open;
  end;
end;

procedure TForm4.Timer1Timer(Sender: TObject);
begin
  dm.ADOQ9.Close;
  dm.ADOQ9.Open;
  n:=random(dm.ADOQ9.RecordCount);
  dm.ADOQ9.MoveBy(n);
  label2.Caption:=dm.ADOQ9.Fieldbyname('Nav_User').AsString;
  panel1.Refresh;
end;

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  timer2.Enabled:=false;
  mp1.Stop;
  mp2.Stop;
  mp3.Stop;
  form1.Show;
  form1.opt2:=0;
  if form1.sou2=0 then
  begin
    form1.Mp1.Stop;
    form1.mp2.Play;
  end;
end;

procedure TForm4.ComboBox1Change(Sender: TObject);
begin
  form4.injust;
  if bitbtn1.Enabled=true then
    bitbtn1.SetFocus;
end;

procedure TForm4.injust;
var sCounts:integer;
begin
  dm.ADOQ10.Close;
  dm.ADOQ10.SQL.Clear;
  dm.ADOQ10.SQL.Add('select Nav_JXcount from JX_Table where Nav_JXname=:a');
  dm.ADOQ10.Parameters.ParamByName('a').Value:=Trim(combobox1.Text);
  dm.ADOQ10.Open;
  sCounts:=dm.ADOQ10.Fieldbyname('Nav_JXcount').AsInteger;
  dm.ADOQ11.Close;
  dm.ADOQ11.SQL.Clear;
  dm.ADOQ11.SQL.Add('select * from User_Table where Nav_ZJbs=:a and Nav_ZJname=:b');
  dm.ADOQ11.Parameters.ParamByName('a').Value:='1';
  dm.ADOQ11.Parameters.ParamByName('b').Value:=Trim(combobox1.Text);
  dm.ADOQ11.Open;
  if sCounts=dm.ADOQ11.RecordCount then
  begin
    showmessage('该奖项已经发放完毕!');
    bitbtn1.Enabled:=false;
    opt:=1;
    exit;
  end
  else
  begin
    bitbtn1.Enabled:=true;
    opt:=0;
  end;
end;

procedure TForm4.Timer2Timer(Sender: TObject);
begin
  if col=4 then col:=0;
  if col=0 then panel3.Font.Color:=clFuchsia;
  if col=1 then panel3.Font.Color:=clblue;
  if col=2 then panel3.Font.Color:=clred;
  if col=3 then panel3.Font.Color:=clGreen;
  col:=col+1;
end;

procedure TForm4.Timer3Timer(Sender: TObject);
begin
  if coll=2 then coll:=0;
  if coll=0 then label2.Font.Color:=clFuchsia;
  //if coll=1 then label2.Font.Color:=clblue;
  if coll=1 then label2.Font.Color:=clred;
  //if coll=3 then label2.Font.Color:=clGreen;
  coll:=coll+1;
end;

procedure TForm4.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key=VK_F2) then
  begin
    form1.Show;
    form4.Close;
  end;
end;

procedure TForm4.souplay;
begin
  if form1.sou5=0 then
  begin
    mp1.Play;
    mp2.Stop;
    mp3.Stop;
  end
  else
  begin
    mp1.Stop;
  end;
end;

procedure TForm4.Kjsouplay;
begin
  if form1.sou3=0 then
  begin
    mp2.Position:=0;
    mp2.Play;
    mp1.Stop;
    mp3.Stop;
  end
  else
  begin
    mp2.Stop;
  end;
end;

procedure TForm4.zjsouplay;
begin
  if form1.sou4=0 then
  begin
    mp3.Position:=0;
    mp3.Play;
    mp2.Stop;
    if mp3.Position=mp3.Length then
    begin
      form4.souplay;
    end;
  end
  else
  begin
    mp3.Stop;
  end;
end;

procedure TForm4.mp1Notify(Sender: TObject);
begin
 { if ((form1.re3=0) and (form1.sou5=0)) then
  begin
    if ((mp1.Position=mp1.Length) and (mp1.NotifyValue=nvSuccessful)) then
    begin
      mp1.Position:=0;
      mp1.Play;
    end;
  end;     }
end;

procedure TForm4.FormCreate(Sender: TObject);
begin
  combobox1.Width:=round(panel2.Width/2);
  combobox1.Left:=round(panel2.Width / 2) - round(combobox1.Width / 2);
  label1.Left:=combobox1.Left-label1.Width-5;
  bitbtn1.Left:=combobox1.Left;
  bitbtn1.Width:=combobox1.Width;
end;

end.

⌨️ 快捷键说明

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