upinit.pas

来自「商场活动抽奖系统,无需控件,可以正常使用.」· PAS 代码 · 共 85 行

PAS
85
字号
unit UPInit;

interface

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

type
  InitC = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;

  end;

implementation
 uses
  UInit,UMain;
procedure InitC.Execute;
var
 i,count,nmb:Integer;
 tmp:String;
 Query,QueryIns:TADOQuery;
begin
 for i:=1 to length(frmInit.edt_Start.Text) do
  begin
   tmp:=tmp+'0';
  end;
 Query:=TADOQuery.Create(nil);
 Query.Connection:=frmMain.ADOC;
 QueryIns:=TADOQuery.Create(nil);
 QueryIns.Connection:=frmMain.ADOC;
 //删除原有信息
 Query.SQL.Text:='delete from award';
 Query.ExecSQL;
 //生成新的信息
 count:=StrToInt(frmInit.edt_Start.Text);
 for i:=count to StrToInt(frmInit.edt_count.Text)+count-1 do
  begin
   frmInit.lb.Items.Add(FormatFloat(tmp,i));
   Query.SQL.Text:='insert into award values('''+FormatFloat(tmp,i)
                     +''','''',''N'')';
   Query.ExecSQL;
  end;
 //产生中奖数据
  Query.Close;
  Query.SQL.Text:='select * from aw order by aw_id';
  Query.Open;
  while not Query.Eof do
   begin
    
    for i:=1 to Query.FieldByName('aw_count').AsInteger do
     begin
      if frmInit.lb.Items.Count<=0 then
       begin
        Query.Last;
        //显示信息
        frmInit.TimerMsg.Enabled:=True;
        break;
       end;
      nmb:=random(frmInit.lb.Items.Count);
      tmp:=frmInit.lb.Items.Strings[nmb];
      QueryIns.SQL.Text:='update award set aw_id='''
                  +Query.FieldByName('aw_id').AsString+''' where nmb='''+tmp+'''';
      QueryIns.ExecSQL;
      frmInit.lb.ItemIndex:=nmb;
      frmInit.lb.Items.Delete(frmInit.lb.ItemIndex);
     end;
    Query.Next
   end;
 Query.Close;
 Query.Free;
 QueryIns.Free;
 //重新初始化抽奖界面的数据
 frmMain.OnShow(nil);
 frmInit.lab_info.Caption:='初始化系统信息' ;
 frmInit.btnInit.Enabled:=True;
 frmInit.setRW(False);  

 
end;
end.

⌨️ 快捷键说明

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