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

📄 main.pas

📁 delphi2007 开发的一个抽奖系统(带源代码)
💻 PAS
字号:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, math,ExtCtrls,TChou, ComCtrls, DB, ADODB, Menus;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Memo1: TMemo;
    GroupBox2: TGroupBox;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    BitBtn2: TBitBtn;
    Memo2: TMemo;
    GroupBox3: TGroupBox;
    Memo3: TMemo;
    BitBtn3: TBitBtn;
    Timer1: TTimer;
    SaveDialog1: TSaveDialog;
    Edit2: TEdit;
    cb_Cj: TCheckBox;
    Edit3: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    StatusBar1: TStatusBar;
    Timer2: TTimer;
    Conn: TADOConnection;
    Query: TADOQuery;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    procedure Timer2Timer(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure FormClick(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure GroupBox2DblClick(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure N1Click(Sender: TObject);
  private
    { Private declarations }
   z,y:integer;
      cj:DispCJ;
    procedure TimeEvent();
    procedure ShouDong;
    procedure ZiDong;
  public
    { Public declarations }
       bz:boolean;
        k:integer;
  end;

var
  Form1: TForm1;

implementation



{$R *.dfm}

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
 if(Cb_Cj.Checked =false) then
  ShouDong
 else
 begin
  y:=0;
  ZiDong;
 end;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
 if savedialog1.Execute then
 begin
  memo3.Lines.SaveToFile(savedialog1.FileName);
  showmessage('保存完毕!'); 
 end;
end;

procedure TForm1.GroupBox2DblClick(Sender: TObject);
begin
z:=1;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
Memo3.Clear;
end;

procedure TForm1.RadioButton1Click(Sender: TObject);
var
  I:integer;
begin
  if Not Conn.Connected then Conn.Open();
  Query.Connection := Conn;
  Query.SQL.Clear();
  Query.SQL.Add('SELECT * FROM tStat WHERE (sCardID > 0)');
  Query.Open;
  Memo1.Clear;
  for I := 0 to Query.RecordCount - 1 do
  begin
  Memo1.Lines.Add(Query.FieldByName('sCardid').AsString + '★★★' + Query.FieldByName('sName').AsString+'=>'+uppercase(Query.FieldByName('sCom').AsString));
  Query.Next;
  end;
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
var
  I:integer;
begin
  if Not Conn.Connected then Conn.Open();
  Query.Connection := Conn;
  Query.SQL.Clear();
  Query.SQL.Add('SELECT * FROM tStat WHERE (sCardID < 0)');
  Query.Open;
  Memo1.Clear;
  for I := 0 to Query.RecordCount - 1 do
  begin
    Memo1.Lines.Add(Query.FieldByName('sCardid').AsString + '★★★' + Query.FieldByName('sName').AsString+'=>'+uppercase(Query.FieldByName('sCom').AsString));
  Query.Next;
  end;
end;

procedure TForm1.RadioButton3Click(Sender: TObject);
var
  I:integer;
begin
  if Not Conn.Connected then Conn.Open();
  Query.Connection := Conn;
  Query.SQL.Clear();
  Query.SQL.Add('SELECT * FROM tStat WHERE (sCardID <0 or sCardID>0)');
  Query.Open;
  Memo1.Clear;
  for I := 0 to Query.RecordCount - 1 do
  begin
  Memo1.Lines.Add(Query.FieldByName('sCardid').AsString + '★★★' + Query.FieldByName('sName').AsString+'=>'+uppercase(Query.FieldByName('sCom').AsString));
  Query.Next;
  end;
end;

procedure TForm1.TimeEvent();
var
  i: Integer;
begin
  if k = 0 then
    k := 0;
  if k >= memo1.Lines.Count then
    k := memo1.Lines.Count - 1;
  memo2.Clear;
  for i := 0 to memo1.Lines.Count do
  begin
   if bz=true then
   begin
    if i >= k then
    begin
      memo2.Lines.Append(memo1.Lines[i]);
      if(bz=false) then
      break;
    end;

    end
    else
    begin
     break;
    end;
  end;
  inc(k);
end;

procedure TForm1.ShouDong;
var
 i:integer;
 tmp:string;
begin
  if bitbtn2.Caption = '开始抽奖' then
  begin
    if trim(edit1.Text) = '' then
    begin
      showmessage('请输入获取的此奖的名额!');
      edit1.SetFocus;
    end
    else
    begin
      if combobox1.Text = '选择奖项设置' then
      begin
        showmessage('请选择奖项设置!');
      end
      else
      begin
        bitbtn2.Caption := '获取抽奖结果';
        timer1.Enabled := true;
        bz := true;
        cj := DispCJ.Create(true);
        cj.Resume;
      end;
    end;
  end
  else
  begin
    //获取抽奖结果
    bz := false;
    //cj.Suspend;
    //k:=cj.k;
    k := cj.k;
    edit2.Color := clMedGray;
    memo3.Lines.Append(memo1.Lines.Strings[k]);
    tmp:=memo1.Lines.Strings[k];
   // memo1.Lines.Delete(k);
    for i:=0 to memo1.Lines.Count -1 do
    begin
      if memo1.Lines.Strings [i]=tmp then memo1.Lines.Delete(i);
    end;
    timer1.Enabled := false;
    bitbtn2.Caption := '开始抽奖';
  end;
end;

procedure TForm1.ZiDong;
begin
  begin
    if bitbtn2.Caption = '开始抽奖' then
    begin
      if trim(edit1.Text) = '' then
      begin
        showmessage('请输入获取的此奖的名额!');
        edit1.SetFocus;
      end
      else
      begin
        if combobox1.Text = '选择奖项设置' then
        begin
          showmessage('请选择奖项设置!');
        end
        else
        begin
         { bitbtn2.Caption := '获取抽奖结果';
          //timer1.Enabled := true;
          bz := true;
          cj := DispCJ.Create(true);
          cj.Resume;}
          timer1.Interval :=strtoint(edit3.Text)*1000;
          timer1.Enabled :=true;
          bz:=true;
          cj:=dispcj.Create(true);
          cj.Resume;
          
        end;
      end;
    end;
  end;
end;

procedure TForm1.FormClick(Sender: TObject);
begin
 bz:=false;
 self.TimeEvent;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
self.DoubleBuffered:= true;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
memo3.Lines.Append(combobox1.text);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i:integer;
  tmp:string;
begin
if (bz=true) and (bitbtn2.Caption ='获取抽奖结果') then
begin
  {k := cj.k;
 //inc(y);
 edit2.Color := clMedGray;
 memo3.Lines.Append(memo1.Lines.Strings[k]);
// memo1.Lines.Delete(k);
 tmp:=memo1.Lines.Strings[k];
 for i:=0 to memo1.Lines.Count -1 do
 begin
      if memo1.Lines.Strings [i]=tmp then memo1.Lines.Delete(i);
 end;


 self.Timer1.Enabled :=false;
// edit2.Color:=clWhite;
 cj.Suspended:=true;
 cj.Suspend;
 bitbtn2.Caption :='开始抽奖';
  showmessage('抽奖完成!');
  }
  shoudong;

end;
if(bz=true) and (bitbtn2.Caption <>'获取抽奖结果') then
begin
 bz:=false;
 //cj.Suspended:=true;
 //cj.Suspend;
 cj.Terminate;
 k := cj.k;
 inc(y);
 edit2.Color := clMedGray;
 memo3.Lines.Append(memo1.Lines.Strings[k]);
 //memo1.Lines.Delete(k);
 tmp:=memo1.Lines.Strings[k];
 for i:=0 to memo1.Lines.Count -1 do
 begin
      if memo1.Lines.Strings [i]=tmp then memo1.Lines.Delete(i);
 end;

 if(y <(strtoint(edit1.Text))) then
 begin

 bz:=true;
 edit2.Color:=clWhite;
// cj.Resume;
cj:=dispcj.Create(true);
          cj.Resume;
 end
 else
 begin
  showmessage('抽奖完成!');
 end;
end;
end;

procedure TForm1.Edit3Change(Sender: TObject);
begin

 self.Timer1.Interval :=strtoint(edit3.Text)*1000;

end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
 statusbar1.Panels[2].Text :=datetimetostr(now);
end;

end.

⌨️ 快捷键说明

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